Класс BufferedWriter
- Все реализуемые интерфейсы:
Closeable, Flushable, Appendable, AutoCloseable
public class BufferedWriter extends Writer
Размер буфера можно задать явно или использовать значение по умолчанию. Размер по умолчанию достаточно велик для большинства задач.
Предусмотрен метод newLine(), который использует собственное для платформы представление разделителя строк, заданное системным свойством line.separator. Не на всех платформах для завершения строк используется символ новой строки ('\n'). Поэтому для завершения каждой выходной строки предпочтительнее вызывать этот метод, а не записывать символ новой строки напрямую.
Как правило, Writer немедленно отправляет выходные данные в нижележащий символьный или байтовый поток. Если немедленный вывод не требуется, рекомендуется обернуть любой Writer, операции write() которого могут быть затратными, например FileWriters и OutputStreamWriters, в BufferedWriter. Например:
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
PrintWriter в файл. Без буферизации каждый вызов метода print() приводил бы к преобразованию символов в байты с немедленной записью в файл, что может быть крайне неэффективно.- Примечание к API:
- После обертывания в
BufferedWriterнижележащийWriterне следует использовать напрямую или оборачивать другим объектом записи. - С версии:
- 1.1
- См. также:
Краткое описание полей
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
BufferedWriter |
Создает буферизованный символьный поток вывода с буфером вывода размера по умолчанию. |
BufferedWriter |
Создает новый буферизованный символьный поток вывода с буфером вывода заданного размера. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает поток, предварительно сбрасывая его. |
void |
flush() |
Сбрасывает поток. |
void |
newLine() |
Записывает разделитель строк. |
void |
write |
Записывает часть массива символов. |
void |
write |
Записывает один символ. |
void |
write |
Записывает часть String. |
Подробное описание конструкторов
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— int, задающий символ для записи - Исключения:
-
IOException— если произошла ошибка ввода-вывода
write
public void write(char[] cbuf, int off, int len) throws IOException
Обычно этот метод помещает символы из заданного массива в буфер данного потока и при необходимости сбрасывает буфер в нижележащий поток. Однако если запрошенная длина не меньше размера буфера, метод сбрасывает буфер и записывает символы непосредственно в нижележащий поток. Таким образом, повторные BufferedWriters не приводят к ненужному копированию данных.
- Указано в:
-
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— String для записи -
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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/BufferedWriter.html