Spec-Zone.ru › OpenJDK 25

Класс 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

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

Конструктор Описание
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)
Записывает часть String.

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

append, append, append, nullWriter, write, write

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, в том числе обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/BufferedWriter.html

Spec-Zone.ru

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