我只是想知道我的对象FileOutputStream
;应该在catch块中调用out.close();
?因为out对象在发生某些事情时仍然是“开放的”。
如果没有,是否应该在catch块中处理FileOutputStream
对象的任何其他内容?
public void saveBitmap(){
final File myDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), folderName);
myDir.mkdirs();
final File file = new File(myDir, getFileName() + getFileExtension());
FileOutputStream out = null;
try {
out = new FileOutputStream(file);
viewToBitmap().compress(Bitmap.CompressFormat.JPEG, quality, out);
}
out.flush();
out.getFD().sync();
out.close();
} catch (IOException e) {
//should I out.close(); here too?
e.printStackTrace();
onBitmapSavedListener(false, null);
}
}
答案 0 :(得分:2)
您应该在finally块中关闭连接。所以你可以确定它会在课程结束时结束。