Spec-Zone.ru › OpenJDK 24

Класс BufferedWriter

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

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

Поля, объявленные в классе java.io.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)
Записывает часть строки.

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

append, append, append, nullWriter, write, write

Методы, объявленные в классе java.lang.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 - Целое число, определяющее символ для записи
Исключения:
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 - Если произошла ошибка ввода-вывода

© 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

Spec-Zone.ru

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