РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
743 of 1163 menu

Метод close

Метод close класса PrintStream закрывает поток вывода и освобождает связанные с ним системные ресурсы. После вызова этого метода запись в поток становится невозможной - попытка вызвать методы print, println или write приведет к исключению. Метод не принимает параметров. Если поток уже был закрыт ранее, повторный вызов close не дает никакого эффекта.

Важно отметить, что закрытие System.out или System.err крайне не рекомендуется, так как эти потоки используются всей программой и после их закрытия вы не сможете выводить данные в консоль.

Синтаксис

printStream.close()

Пример

Давайте создадим поток вывода в файл, запишем в него строку и закроем его с помощью метода close:

import java.io.PrintStream; import java.io.FileNotFoundException; public class Main { public static void main(String[] args) { try { PrintStream ps = new PrintStream("output.txt"); ps.println("abcde"); ps.close(); System.out.println("stream closed"); } catch (FileNotFoundException e) { System.out.println("file not found"); } } }

Результат выполнения кода:

"stream closed"

Пример

Давайте проверим, что после закрытия потока запись в него приводит к ошибке:

import java.io.PrintStream; import java.io.FileNotFoundException; public class Main { public static void main(String[] args) { try { PrintStream ps = new PrintStream("output.txt"); ps.println("12345"); ps.close(); ps.println("abcde"); } catch (FileNotFoundException e) { System.out.println("file not found"); } } }

Результат выполнения кода:

Exception in thread "main" java.io.IOException: Stream closed

Пример

Давайте убедимся, что повторный вызов close не приводит к ошибке:

import java.io.PrintStream; import java.io.FileNotFoundException; public class Main { public static void main(String[] args) { try { PrintStream ps = new PrintStream("output.txt"); ps.println("abcde"); ps.close(); ps.close(); System.out.println("done"); } catch (FileNotFoundException e) { System.out.println("file not found"); } } }

Результат выполнения кода:

"done"

Смотрите также

  • класс PrintStream,
    который представляет поток вывода
  • метод flush,
    который сбрасывает буфер потока
  • метод println,
    который выводит строку с переводом строки
  • метод print,
    который выводит данные в поток
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить