Класс 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 |
Записывает часть строки. |
Методы, объявленные в классе Writer
append, append, append, nullWriter, write, write | Модификатор и тип | Метод | Описание |
|---|---|---|
Writer |
append |
Добавляет указанный символ в этот поток записи. |
Writer |
append |
Добавляет указанную последовательность символов в этот поток записи. |
Writer |
append |
Добавляет под последовательность указанной последовательности символов в этот поток записи. |
static Writer |
nullWriter() |
Возвращает новый Writer, который отбрасывает все символы. |
void |
write |
Записывает массив символов. |
void |
write |
Записывает строку. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли этот объект какому-либо другому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова 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- Указано в:
-
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.