Класс 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() могут быть дорогостоящими, например, FileWriters и OutputStreamWriters. Например,
PrintWriter out
= new PrintWriter(new BufferedWriter(new FileWriter("foo.out"))); будет буферизовать вывод PrintWriter в файл. Без буферизации каждое вызов метода print() приведет к преобразованию символов в байты, которые затем будут сразу записаны в файл, что может быть очень неэффективным.- С:
- 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 | 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, close, 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- 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- Если произошла ошибка ввода-вывода
© 1993, 2020, 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/11/docs/api/java.base/java/io/BufferedWriter.html