Класс BufferedWriter
- Все реализованные интерфейсы:
-
Closeable,Flushable,Appendable,AutoCloseable
public class BufferedWriter extends Writer
Размер буфера можно указать или принять значение по умолчанию. Значение по умолчанию достаточно для большинства случаев.
Предоставляется метод newLine(), который использует собственное представление платформы о разделителе строк, определённом системной переменной line.separator. Не все платформы используют символ новой строки ('\n') для завершения строк. Поэтому предпочтительнее вызывать этот метод для завершения каждой строки вывода, чем писать символ новой строки напрямую.
В общем случае, Writer отправляет свой вывод сразу в базовый поток символов или байтов. Если не требуется мгновенный вывод, рекомендуется обернуть BufferedWriter вокруг любого Writer, чьи write() операции могут быть дорогостоящими, например, FileWriter и OutputStreamWriter. Например,
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
PrintWriter в файл. Без буферизации каждый вызов метода print() приведет к преобразованию символов в байты, которые будут сразу записаны в файл, что может быть очень неэффективно.- Примечание API:
- После обертывания в
BufferedWriter, базовыйWriterне должен использоваться напрямую и не должен обертываться другим объектом Writer. - С:
- 1.1
- См. также:
Краткое описание полей
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
BufferedWriter |
Создаёт буферизованный поток символьного вывода, использующий буфер вывода по умолчанию. |
BufferedWriter |
Создаёт новый буферизованный поток символьного вывода, использующий буфер вывода заданного размера. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает поток, предварительно его сбросив. |
void |
flush() |
Сбрасывает поток. |
void |
newLine() |
Записывает разделитель строк. |
void |
write |
Записывает часть массива символов. |
void |
write |
Записывает один символ. |
void |
write |
Записывает часть строки. |
Подробное описание конструкторов
BufferedWriter
public BufferedWriter(Writer out)
- Параметры:
-
out- Объект Writer
BufferedWriter
public BufferedWriter(Writer out, int sz)
- Параметры:
-
out- Объект Writer -
sz- Размер буфера вывода, положительное целое число - Исключения:
-
IllegalArgumentException- Еслиsz <= 0
Подробное описание методов
write
public void write(int c) throws IOException
- Переопределяет:
-
writeв классеWriter - Параметры:
-
c- Целое число, определяющее символ для записи - Исключения:
-
IOException- Если произошла ошибка ввода-вывода
write
public void write(char[] cbuf, int off, int len) throws IOException
Обычно этот метод сохраняет символы из заданного массива в буфер этого потока, сбрасывая буфер в базовый поток по мере необходимости. Однако, если запрошенная длина не меньше размера буфера, этот метод сбросит буфер и запишет символы непосредственно в базовый поток. Таким образом, избыточные BufferedWriter не будут копировать данные излишне.
- Указано в:
-
writeв классеWriter - Параметры:
-
cbuf- Массив символов -
off- Смещение для начала чтения символов -
len- Количество символов для записи - Исключения:
-
IndexOutOfBoundsException- Еслиoffотрицательное, илиlenотрицательное, илиoff + lenотрицательное или больше длины заданного массива -
IOException- Если произошла ошибка ввода-вывода
write
public void write(String s, int off, int len) throws IOException
- Переопределяет:
-
writeв классеWriter - Требования к реализации:
- Хотя спецификация этого метода в суперклассе рекомендует выбрасывать
IndexOutOfBoundsException, еслиlenотрицательное илиoff + lenотрицательное, реализация в этом классе не выбрасывает такое исключение в этих случаях, а вместо этого просто не записывает символы. - Параметры:
-
s- Строка для записи -
off- Смещение для начала чтения символов -
len- Количество символов для записи - Исключения:
-
IndexOutOfBoundsException- Еслиoffотрицательное, илиoff + lenбольше длины заданной строки -
IOException- Если произошла ошибка ввода-вывода
newLine
public void newLine() throws IOException
line.separator и не обязательно является единственным символом новой строки ('\n').- Исключения:
-
IOException- Если произошла ошибка ввода-вывода
flush
public void flush() throws IOException
- Указано в:
-
flushв интерфейсеFlushable - Указано в:
-
flushв классеWriter - Исключения:
-
IOException- Если произошла ошибка ввода-вывода
close
public void close() throws IOException
Writer- Указано в:
-
closeв интерфейсеAutoCloseable - Указано в:
-
closeв интерфейсеCloseable - Указано в:
-
closeв классеWriter - Исключения:
-
IOException- Если произошла ошибка ввода-вывода
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/io/BufferedWriter.html