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

Метод close класса Writer

Метод close класса Writer закрывает поток записи и освобождает связанные с ним ресурсы, например дескрипторы файлов или сетевые соединения. После закрытия потока любые попытки вызвать методы write, flush или append приводят к исключению IOException. Метод не принимает параметров и не возвращает значения. Если поток уже был закрыт ранее, повторный вызов close не даёт эффекта.

Синтаксис

public void close() throws IOException

Пример

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

import java.io.Writer; import java.io.StringWriter; public class Main { public static void main(String[] args) { try { Writer writer = new StringWriter(); writer.write("abcde"); writer.close(); System.out.println("stream closed"); } catch (Exception e) { System.out.println(e.getMessage()); } } }

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

"stream closed"

Пример

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

import java.io.Writer; import java.io.StringWriter; public class Main { public static void main(String[] args) { try { Writer writer = new StringWriter(); writer.close(); writer.write("12345"); } catch (Exception e) { System.out.println(e.getMessage()); } } }

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

"Stream closed"

Пример

Давайте запишем строку в файл через FileWriter и корректно закроем поток в блоке finally:

import java.io.FileWriter; import java.io.Writer; public class Main { public static void main(String[] args) { Writer writer = null; try { writer = new FileWriter("test.txt"); writer.write("abcde"); System.out.println("data written"); } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { if (writer != null) { writer.close(); System.out.println("stream closed"); } } catch (Exception e) { System.out.println(e.getMessage()); } } } }

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

"data written" "stream closed"

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

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