У меня есть этот код:Должен ли я закрывать выходной поток, если я получаю FileNotFoundException? И IOException?
private void save(Bitmap bitmap) {
try {
FileOutputStream fos = new FileOutputStream(path);
bitmap.compress(Bitmap.CompressFormat.JPEG, COMPRESSION_QUALITY, fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Мне нужно закрыть FileOutputStream
в FileNotFoundException
поймать блок Do?
Если это исключение выбрано, это означает, что файл не может быть открыт, поэтому я думаю, что это было бы необязательно. Тем не менее, я думаю, было бы неплохо сделать это в блоке catch IOException
.
Может ли это вызвать ошибку утечки памяти или что-то подобное, если я этого не сделаю?
Спасибо.
В этом случае fos не открывается и fos будет null. Так что нечего закрывать. Пожалуйста попробуйте. – greenapps
@greenapps Не равен нулю, просто никогда не назначается и выходит из области действия в блоке 'catch'. – EJP
Вы должны начать с 'FileOutputStream fos = null;' вне блока catch, конечно. – greenapps