我制作了一个保存系统,我保存了一张图片,然后我关闭了应用程序,然后找到了文件夹。我想打开图片,但图片打开的速度很慢。当我重置电视三星星系时,这张照片打开速度很快(1s)。我的代码出了什么问题?
private String mImagePath = Environment.getExternalStorageDirectory() + "/anppp";
private File file;
public void save() {
File dirPath = new File(Environment.getExternalStorageDirectory().toString() + "/anppp");
dirPath.mkdirs();
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat formatter= new SimpleDateFormat("yyyyMMMddHmmss");
String dateNow = formatter.format(currentDate.getTime());
file = new File(mImagePath + "/"+"ProPaint-" + dateNow +".jpg");
FileOutputStream fos=null;
try {
if(!file.exists())
file.createNewFile();
fos = new FileOutputStream(file);
mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.close();
} catch (FileNotFoundException e) {
Log.e("Panel", "FileNotFoundException", e);
} catch (IOException e) {
Log.e("Panel", "IOEception", e);
}
}
答案 0 :(得分:0)
不知道这是否能真正解决您的问题,但您应该将fos.close()
调用移至finally
块以确保其执行。如果fos.close()
以上的某行引发异常,则以下代码将被忽略,FileOutputStream
将保持打开状态,从而为您提供各种麻烦。当它在finally
块中时,无论情况如何都会执行。希望这会有所帮助。