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

Класс Writer

Класс Writer - это абстрактный базовый класс из пакета java.io, предназначенный для записи символьных данных в выходной поток. Он является родителем для всех классов, которые пишут текст: FileWriter, BufferedWriter, OutputStreamWriter, PrintWriter и других. Сам по себе Writer абстрактный, поэтому напрямую создать его объект нельзя - нужно использовать один из классов-наследников. Основные методы класса позволяют записывать один символ, массив символов, строку или часть строки, а также очищать буфер и закрывать поток.

Метод write принимает либо один символ (в виде значения типа int), либо массив символов, либо строку. Также существует перегрузка, которая принимает массив символов, начальный индекс и длину - в первый параметр мы передаем массив, во второй - начальный индекс, в третий - количество символов для записи. Метод flush принудительно сбрасывает содержимое буфера в целевой поток, а close закрывает поток и освобождает связанные с ним ресурсы.

Синтаксис

Writer writer = new SomeWriter(...); writer.write(int c); writer.write(char[] cbuf); writer.write(char[] cbuf, int off, int len); writer.write(String str); writer.write(String str, int off, int len); writer.flush(); writer.close();

Пример

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

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

В результате в файле out.txt окажется строка:

"abcde"

Пример

Давайте запишем в файл часть строки, начиная со второго символа (индекс 1) и длиной 3 символа:

import java.io.FileWriter; import java.io.Writer; import java.io.IOException; public class Main { public static void main(String[] args) { try (Writer writer = new FileWriter("out.txt")) { writer.write("abcde", 1, 3); } catch (IOException e) { System.out.println(e.getMessage()); } } }

В результате в файле out.txt окажется строка:

"bcd"

Пример

Давайте запишем в файл массив символов и явно вызовем метод flush:

import java.io.FileWriter; import java.io.Writer; import java.io.IOException; public class Main { public static void main(String[] args) { try (Writer writer = new FileWriter("out.txt")) { char[] chars = {'1', '2', '3', '4', '5'}; writer.write(chars); writer.write("\n"); writer.write("abcde"); writer.flush(); } catch (IOException e) { System.out.println(e.getMessage()); } } }

В результате в файле out.txt окажется:

"12345 abcde"

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

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