Spec-Zone.ru › OpenJDK 27

Класс Writer

java.lang.Object
java.io.Writer
Все реализуемые интерфейсы:
Closeable, Flushable, Appendable, AutoCloseable
Прямые известные подклассы:
BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter
public abstract class Writer extends Object implements Appendable, Closeable, Flushable
Абстрактный класс для записи в символьные потоки. Единственные методы, которые должен реализовать подкласс, — это write(char[], int, int), flush() и close(). Однако большинство подклассов переопределяют некоторые из определённых здесь методов, чтобы обеспечить более высокую производительность, дополнительную функциональность или и то и другое.
Начиная с версии:
1.1
См. также:
  • BufferedWriter
  • CharArrayWriter
  • FilterWriter
  • OutputStreamWriter
  • FileWriter
  • PipedWriter
  • PrintWriter
  • StringWriter
  • Reader

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

Модификатор и тип Поле Описание
protected Object lock
Объект, используемый для синхронизации операций с этим потоком.

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

Writer()
Writer(Object lock)
Модификатор Конструктор Описание
protected
Создаёт новый объект записи в символьный поток, критические секции которого синхронизируются по самому объекту записи.
protected
Создаёт новый объект записи в символьный поток, критические секции которого синхронизируются по заданному объекту.

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

Модификатор и тип Метод Описание
Writer append(char c)
Добавляет указанный символ в этот объект записи.
Writer append(CharSequence csq)
Добавляет указанную последовательность символов в этот объект записи.
Writer append(CharSequence csq, int start, int end)
Добавляет подстроку указанной последовательности символов в этот объект записи.
abstract void close()
Закрывает поток, предварительно сбрасывая его буферы.
abstract void flush()
Сбрасывает буферы потока.
static Writer nullWriter()
Возвращает новый Writer, который отбрасывает все символы.
void write(char[] cbuf)
Записывает массив символов.
abstract void write(char[] cbuf, int off, int len)
Записывает часть массива символов.
void write(int c)
Записывает один символ.
void write(String str)
Записывает строку.
void write(String str, int off, int len)
Записывает часть строки.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс среды выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного интервала реального времени.

Подробное описание полей

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
Записывает один символ. Символ для записи содержится в 16 младших битах заданного целого значения; 16 старших битов игнорируются.

Подклассам, которым требуется поддержка эффективного вывода отдельных символов, следует переопределить этот метод.

Параметры:
c — int, задающий символ для записи
Выбрасывает:
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, к этому объекту записи добавляются четыре символа "null".
Возвращает:
этот объект записи
Выбрасывает:
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 — индекс символа, следующего за последним символом в подстроке
Возвращает:
этот объект записи
Выбрасывает:
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-разрядный символ для добавления
Возвращает:
этот объект записи
Выбрасывает:
IOException — если происходит ошибка ввода-вывода
Начиная с версии:
1.5

flush

public abstract void flush() throws IOException
Сбрасывает буферы потока. Если поток сохранил какие-либо символы из различных методов write() в буфере, немедленно записывает их в предназначенное для них место. Затем, если это место назначения является другим символьным или байтовым потоком, сбрасывает его буферы. Таким образом, один вызов flush() сбрасывает все буферы в цепочке объектов Writer и OutputStream.

Если предназначенное для потока место назначения является абстракцией, предоставляемой базовой операционной системой, например файлом, сброс буферов потока гарантирует только передачу ранее записанных в поток байтов операционной системе для записи; он не гарантирует их фактическую запись на физическое устройство, например дисковый накопитель.

Определяется в:
flush в интерфейсе Flushable
Выбрасывает:
IOException — если происходит ошибка ввода-вывода

close

public abstract void close() throws IOException
Закрывает поток, предварительно сбрасывая его буферы. После закрытия потока последующие вызовы write() или flush() приведут к выбрасыванию IOException. Закрытие уже закрытого потока не оказывает никакого эффекта.
Определяется в:
close в интерфейсе AutoCloseable
Определяется в:
close в интерфейсе Closeable
Выбрасывает:
IOException — если происходит ошибка ввода-вывода

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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