Класс Writer
- Все реализуемые интерфейсы:
Closeable, Flushable, Appendable, AutoCloseable
- Прямые известные подклассы:
BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter
public abstract class Writer extends Object implements Appendable, Closeable, Flushable
- Начиная с:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected Object |
lock |
Объект, используемый для синхронизации операций в этом потоке. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новый объект для записи в символьный поток, критические секции которого синхронизируются на самом объекте writer. |
|
protected |
Создаёт новый объект для записи в символьный поток, критические секции которого синхронизируются на заданном объекте. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Writer |
append |
Добавляет указанный символ в этот объект writer. |
Writer |
append |
Добавляет указанную последовательность символов в этот объект writer. |
Writer |
append |
Добавляет под последовательность указанной последовательности символов в этот объект writer. |
abstract void |
close() |
Закрывает поток, предварительно сбрасывая его. |
abstract void |
flush() |
Сбрасывает поток. |
static Writer |
nullWriter() |
Возвращает новый Writer, который отбрасывает все символы. |
void |
write |
Записывает массив символов. |
abstract void |
write |
Записывает часть массива символов. |
void |
write |
Записывает один символ. |
void |
write |
Записывает строку. |
void |
write |
Записывает часть строки. |
Подробное описание полей
lock
protected Object lock
this или синхронизированный метод.Подробное описание конструкторов
Writer
protected Writer()
Writer
protected Writer(Object lock)
- Параметры:
-
lock— объект, на котором выполняется синхронизация
Подробное описание методов
nullWriter
public static Writer nullWriter()
Writer, который отбрасывает все символы. Возвращаемый поток изначально открыт. Поток закрывается вызовом метода close(). Последующие вызовы close() не оказывают эффекта. Пока поток открыт, методы append(char),
append(CharSequence), append(CharSequence, int, int), flush(), write(int), write(char[]) и write(char[], int, int) ничего не делают. После закрытия потока все эти методы выбрасывают IOException.
Объект object, используемый для синхронизации операций в возвращаемом Writer, не определён.
- Возвращает:
Writer, который отбрасывает все символы- Начиная с:
- 11
write
public void write(int c) throws IOException
Подклассам, которым требуется поддержка эффективного вывода отдельных символов, следует переопределить этот метод.
- Параметры:
-
c— целое число, задающее записываемый символ - Выбрасывает:
-
IOException— при возникновении ошибки ввода-вывода
write
public void write(char[] cbuf) throws IOException
- Параметры:
-
cbuf— массив символов для записи - Выбрасывает:
-
IOException— при возникновении ошибки ввода-вывода
write
public abstract void write(char[] cbuf, int off, int len) throws IOException
- Параметры:
-
cbuf— массив символов -
off— смещение, с которого начинается запись символов -
len— количество записываемых символов - Выбрасывает:
-
IndexOutOfBoundsException— реализации должны выбрасывать это исключение, еслиoffотрицательно, илиlenотрицательно, илиoff + lenотрицательно либо больше длины указанного массива -
IOException— при возникновении ошибки ввода-вывода
write
public void write(String str) throws IOException
- Параметры:
-
str— строка для записи - Выбрасывает:
-
IOException— при возникновении ошибки ввода-вывода
write
public void write(String str, int off, int len) throws IOException
- Требования к реализации:
- Реализация в этом классе выбрасывает
IndexOutOfBoundsExceptionпри указанных условиях; переопределяющие методы могут вести себя иначе. - Параметры:
-
str— строка -
off— смещение, с которого начинается запись символов -
len— количество записываемых символов - Выбрасывает:
-
IndexOutOfBoundsException— реализации должны выбрасывать это исключение, еслиoffотрицательно, илиlenотрицательно, илиoff + lenотрицательно либо больше длины указанной строки -
IOException— при возникновении ошибки ввода-вывода
append
public Writer append(CharSequence csq) throws IOException
Вызов этого метода в форме out.append(csq), если csq не является null, ведёт себя точно так же, как вызов
out.write(csq.toString())
В зависимости от спецификации toString для последовательности символов csq, последовательность может быть добавлена не целиком. Например, вызов метода toString символьного буфера вернёт под последовательность, содержимое которой зависит от позиции и предела буфера.
- Определено в:
-
appendв интерфейсеAppendable - Параметры:
-
csq— последовательность символов для добавления. Еслиcsqравноnull, к этому объекту writer добавляются четыре символа"null". - Возвращает:
- Этот объект writer
- Выбрасывает:
-
IOException— при возникновении ошибки ввода-вывода - Начиная с:
- 1.5
append
public Writer append(CharSequence csq, int start, int end) throws IOException
Вызов этого метода в форме out.append(csq, start, end), если csq не является null, ведёт себя точно так же, как вызов
out.write(csq.subSequence(start, end).toString())
- Определено в:
-
appendв интерфейсеAppendable - Параметры:
-
csq— последовательность символов, из которой будет добавлена под последовательность. Еслиcsqравноnull, символы добавляются так, как если быcsqсодержал четыре символа"null". -
start— индекс первого символа под последовательности -
end— индекс символа, следующего за последним символом под последовательности - Возвращает:
- Этот объект writer
- Выбрасывает:
-
IndexOutOfBoundsException— еслиstartилиendотрицательны,startбольшеendилиendбольшеcsq.length() -
IOException— при возникновении ошибки ввода-вывода - Начиная с:
- 1.5
append
public Writer append(char c) throws IOException
Вызов этого метода в форме out.append(c) ведёт себя точно так же, как вызов
out.write(c)
- Определено в:
-
appendв интерфейсеAppendable - Параметры:
-
c— 16-разрядный символ для добавления - Возвращает:
- Этот объект writer
- Выбрасывает:
-
IOException— при возникновении ошибки ввода-вывода - Начиная с:
- 1.5
flush
public abstract void flush() throws IOException
Если предполагаемое место назначения этого потока представляет собой абстракцию, предоставляемую базовой операционной системой, например файл, сброс потока гарантирует только передачу ранее записанных в поток байтов операционной системе для записи; он не гарантирует их фактическую запись на физическое устройство, например дисковод.
- Определено в:
-
flushв интерфейсеFlushable - Выбрасывает:
-
IOException— при возникновении ошибки ввода-вывода
close
public abstract void close() throws IOException
- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Выбрасывает:
-
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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/Writer.html