使用getBytes()保存ParseFile,Android

使用getBytes()保存ParseFile,Android,android,parse-platform,Android,Parse Platform,我试图使用此引用: 了解如何获取相机拍摄的文件并将其保存以进行解析。我有以下代码: private File getOutputMediaFile(int type) { // External sdcard location String appName = CameraActivity.this.getString(R.string.app_name); File mediaStorageDir = new File

我试图使用此引用:

了解如何获取相机拍摄的文件并将其保存以进行解析。我有以下代码:

private File getOutputMediaFile(int type) {

            // External sdcard location
            String appName = CameraActivity.this.getString(R.string.app_name);
            File mediaStorageDir = new File(
                    Environment
                            .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                    appName);

            // Create the storage directory if it does not exist
            if (!mediaStorageDir.exists()) {
                if (!mediaStorageDir.mkdirs()) {
                    Log.d(appName, "Oops! Failed create "
                            + appName + " directory");
                    return null;
                }
            }

            // Create a media file name
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
                    Locale.getDefault()).format(new Date());
            final File mediaFile;
            if (type == MEDIA_TYPE_IMAGE) {
                mediaFile = new File(mediaStorageDir.getPath() + File.separator
                        + "IMG_" + timeStamp + ".jpg");
            } else {
                return null;
            }




            final ParseFile photoFile;

            byte[] data = mediaFile.getBytes();

            // Save the scaled image to Parse
            photoFile = new ParseFile("profile_photo.jpg", data);
但我得到了一个错误:无法解析getBytes


在使用getBytes之前,是否需要将此文件转换为其他文件?它的格式是否错误?

文件没有方法getBytes(),您需要将其转换为字节数组,这里如何回答:

这是我的解决方案,基于此::

私有文件getOutputMediaFile(int类型){
//外部SD卡位置
String appName=CameraActivity.this.getString(R.String.app\u name);
File mediaStorageDir=新文件(
环境
.getExternalStoragePublicDirectory(Environment.DIRECTORY\u图片),
appName);
//如果存储目录不存在,请创建该目录
如果(!mediaStorageDir.exists()){
如果(!mediaStorageDir.mkdirs()){
Log.d(appName,“Oops!创建失败”
+appName+“目录”);
返回null;
}
}
//创建媒体文件名
字符串时间戳=新的SimpleDataFormat(“yyyyMMdd_HHmmss”,
Locale.getDefault()).format(新日期());
最终文件mediaFile;
如果(类型==媒体类型图像){
mediaFile=新文件(mediaStorageDir.getPath()+File.separator
+“IMG_”+时间戳+”.jpg”);
}否则{
返回null;
}
最终文件照片文件;
FileInputStream FileInputStream=null;
byte[]bFile=新字节[(int)mediaFile.length()];
试一试{
//将文件转换为字节数组
fileInputStream=新的fileInputStream(mediaFile);
fileInputStream.read(bFile);
fileInputStream.close();
对于(int i=0;i
张贴日志。可能
mediaFile
为空。。。
private File getOutputMediaFile(int type) {

            // External sdcard location
            String appName = CameraActivity.this.getString(R.string.app_name);
            File mediaStorageDir = new File(
                    Environment
                            .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                    appName);

            // Create the storage directory if it does not exist
            if (!mediaStorageDir.exists()) {
                if (!mediaStorageDir.mkdirs()) {
                    Log.d(appName, "Oops! Failed create "
                            + appName + " directory");
                    return null;
                }
            }

            // Create a media file name
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
                    Locale.getDefault()).format(new Date());
            final File mediaFile;
            if (type == MEDIA_TYPE_IMAGE) {
                mediaFile = new File(mediaStorageDir.getPath() + File.separator
                        + "IMG_" + timeStamp + ".jpg");
            } else {
                return null;
            }




            final ParseFile photoFile;

            FileInputStream fileInputStream=null;

            byte[] bFile = new byte[(int) mediaFile.length()];

            try {
                //convert file into array of bytes
                fileInputStream = new FileInputStream(mediaFile);
                fileInputStream.read(bFile);
                fileInputStream.close();

                for (int i = 0; i < bFile.length; i++) {
                    System.out.print((char)bFile[i]);
                }

                System.out.println("Done");
            }catch(Exception e) {
                e.printStackTrace();

            }


            // Save the image to Parse
            photoFile = new ParseFile("profile_photo.jpg", bFile);
            photoFile.saveInBackground(new SaveCallback() {

                public void done(ParseException e) {
                    if (e != null) {


                    } else {
                        addPhotoToProfile(photoFile);

                    }
                }
            });

            return mediaFile;
        }

    private void addPhotoToProfile(ParseFile photoFile) {

        mCurrentUser.getCurrentUser();
        mCurrentUser.put("ProfilePhoto", photoFile);


    }