Spec-Zone.ru › OpenJDK 27

Класс BufferedWriter

java.lang.Object
java.io.Writer
java.io.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
См. также:
  • PrintWriter
  • FileWriter
  • OutputStreamWriter
  • Files.newBufferedWriter(Path, Charset, OpenOption...)

Краткое описание полей

Поля, объявленные в классе Writer

lock
Модификатор и тип Поле Описание
protected Object lock
Объект, используемый для синхронизации операций над этим потоком.

Краткое описание конструкторов

Конструктор Описание
BufferedWriter(Writer out)
Создает буферизованный символьный поток вывода с буфером вывода размера по умолчанию.
BufferedWriter(Writer out, int sz)
Создает новый буферизованный символьный поток вывода с буфером вывода заданного размера.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает поток, предварительно сбрасывая его буфер.
void flush()
Сбрасывает буфер потока.
void newLine()
Записывает разделитель строк.
void write(char[] cbuf, int off, int len)
Записывает часть массива символов.
void write(int c)
Записывает один символ.
void write(String s, int off, int len)
Записывает часть строки.

Методы, объявленные в классе Writer

append, append, append, nullWriter, write, write
Модификатор и тип Метод Описание
Writer append(char c)
Добавляет указанный символ в этот поток записи.
Writer append(CharSequence csq)
Добавляет указанную последовательность символов в этот поток записи.
Writer append(CharSequence csq, int start, int end)
Добавляет под последовательность указанной последовательности символов в этот поток записи.
static Writer nullWriter()
Возвращает новый Writer, который отбрасывает все символы.
void write(char[] cbuf)
Записывает массив символов.
void write(String str)
Записывает строку.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

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
Записывает часть массива символов.

Обычно этот метод сохраняет символы из указанного массива в буфере потока, сбрасывая буфер в нижележащий поток по мере необходимости. Однако если запрошенная длина не меньше размера буфера, метод сбрасывает буфер и записывает символы непосредственно в нижележащий поток. Таким образом, избыточные вызовы 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
Закрывает поток, предварительно сбрасывая его буфер. После закрытия потока дальнейшие вызовы write() или flush() приведут к выбрасыванию IOException. Повторное закрытие уже закрытого потока не имеет эффекта.
Указано в:
close в интерфейсе AutoCloseable
Указано в:
close в интерфейсе Closeable
Указано в:
close в классе Writer
Выбрасывает:
IOException — если возникает ошибка ввода-вывода

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API