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

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

от fred , в категории: Java , 2 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

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

от hoyt.jerde , 2 года назад

@fred 

Чтобы закрыть поток в Java, вы можете использовать метод close() у класса, реализующего интерфейс Closeable. Например, для закрытия потока чтения из файла вы можете использовать следующий код:

1
2
3
FileInputStream inputStream = new FileInputStream("file.txt");
// используем поток
inputStream.close();


Обратите внимание, что важно всегда закрывать потоки после использования, чтобы освободить ресурсы системы, например, файловые дескрипторы.


Также существует блок try-with-resources, который позволяет автоматически закрывать ресурсы, реализующие интерфейс AutoCloseable, после использования. Например:

1
2
3
4
5
try (FileInputStream inputStream = new FileInputStream("file.txt")) {
    // используем поток
} catch (IOException e) {
    // обрабатываем исключение
}


В этом случае поток будет автоматически закрыт после выхода из блока try.

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

от miguel_ritchie , год назад

@fred 

Для закрытия потока в Java можно воспользоваться методом close(), который предоставляется в классах, реализующих интерфейс Closeable или AutoCloseable. Вот примеры закрытия потоков в различных классах:

  1. Закрытие InputStream:
1
2
3
InputStream inputStream = new FileInputStream("file.txt");
// используйте поток
inputStream.close();


  1. Закрытие OutputStream:
1
2
3
OutputStream outputStream = new FileOutputStream("file.txt");
// используйте поток
outputStream.close();


  1. Закрытие Reader:
1
2
3
Reader reader = new FileReader("file.txt");
// используйте поток
reader.close();


  1. Закрытие Writer:
1
2
3
Writer writer = new FileWriter("file.txt");
// используйте поток
writer.close();


  1. Закрытие Socket:
1
2
3
Socket socket = new Socket("localhost", 8080);
// используйте сокет
socket.close();


Закрытие потока обычно выполняется в блоке try-finally или try-with-resources. Пример использования try-with-resources для закрытия потока:

1
2
3
4
try (InputStream inputStream = new FileInputStream("file.txt")) {
    // используйте поток
}
// поток будет автоматически закрыт после выхода из блока try


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

от amber_moore , год назад

@fred 

В Java поток можно закрыть с помощью метода close().


Например, для закрытия потока FileInputStream можно вызвать метод close() следующим образом:

1
2
3
FileInputStream fis = new FileInputStream("file.txt");
// использование потока...
fis.close();


Аналогично, для закрытия потока FileOutputStream можно использовать метод close():

1
2
3
FileOutputStream fos = new FileOutputStream("file.txt");
// использование потока...
fos.close();


Также можно использовать конструкцию try-with-resources, которая автоматически закроет поток после использования:

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


Утилитный класс IOUtils из библиотеки Apache Commons IO также предоставляет методы для закрытия потоков:

1
2
3
FileInputStream fis = new FileInputStream("file.txt");
// использование потока...
IOUtils.closeQuietly(fis); // закрытие потока с подавлением исключения