TGViewer
Java Learning Java Learning @java_per_month · 16.5K subscribers
Post #2735 3K
➡️ Закрытие потоков в собственном блоке try

Раньше я закрывал потоки 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 👩‍💻
  • 👍 15
  • 🤔 4
  • ❤ 1
  • 😁 1
More from @java_per_month
  1. Oct 6, 2026🤺 Почему ты получаешь отказ после «норм собеса»? Дело не в знаниях — ты просто не знаешь,…
  2. Oct 6, 2026⚙️ Set.retainAll() В Java метод Set.retainAll() позволяет оставить только те элементы множ…
  3. Sep 14, 2026❓ Вопрос на собеседовании Что такое ForkJoinPool в Java, как он работает, и как его исполь…
  4. Sep 4, 2026⚙️ List.subList() В Java метод subList() позволяет создать представление части списка. Это…
  5. Sep 1, 2026🔴 Завтра тестовое собеседование с Java-разработчиком 2 сентября(уже завтра!) в 19:00 по м…
  6. Aug 17, 2026➡️ Quarkus — быстрый и лёгкий фреймворк для Java-приложений Quarkus — оптимизированный фре…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →