Как закрыть все потоки в Java?

Пользователь

от stanford_mosciski , в категории: Java , 8 месяцев назад

Как закрыть все потоки в Java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от francisco.friesen , 3 месяца назад

@stanford_mosciski 

Чтобы закрыть все открытые потоки в Java, вам нужно вызвать метод close у каждого объекта InputStream, OutputStream или Reader, который вы используете. Это можно сделать руками, но это может быть неудобно, особенно если у вас много потоков.


Один из способов упростить этот процесс - это использовать класс try-with-resources, который был добавлен в Java 7. Этот класс автоматически закроет все ресурсы, которые были открыты внутри него, как только блок try завершится. Например:

1
2
3
4
5
6
try (InputStream input = new FileInputStream("file.txt");
     OutputStream output = new FileOutputStream("output.txt")) {
    // чтение из input и запись в output
} catch (IOException e) {
    // обработка исключения
}


В этом примере файловые потоки input и output будут автоматически закрыты после завершения блока try, независимо от того, что произойдет внутри него (будет ли брошено исключение или нет).


Если вы хот