Раньше я закрывал потоки
InputStream и OutputStream следующим образом:InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream("application.json");
os = new FileOutputStream("application.log");
} catch (IOException io) {
// Обработка исключения
} finally {
is.close();
os.close();
}
🗣️ Проблема в том, что если первый поток вызовет исключение, то закрытие второго потока никогда не произойдет.
✔️ Правильный способ:
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream("../input/fxrates.txt");
os = new FileOutputStream("../output/fxrates.txt");
......
} finally {
try { if (is != null) is.close(); } catch(IOException e) {//closing quietly}
try { if (os != null) os.close(); } catch(IOException e) {//closing quietly}
}
Java Learning 👩💻
