Я просто задавался вопросом, не объективна ли моя цель FileOutputStream
; out.close();
следует вызвать в блоке catch? Поскольку внешний объект все еще «открыт», если что-то происходит.Должен FileOutputStream.close(); вызываться в блоке catch IOException?
Если нет, следует ли что-либо еще с объектом FileOutputStream
обрабатывать в блоке catch?
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);
}
}
Вы не сможете использовать 'out' в' catch', потому что вы его объявили в 'try' – rala
@rala Просто изменилось, так что теперь возможно – Muddz