Spec-Zone.ru › OpenJDK 25

Класс 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
Создаёт новый объект для записи в символьный поток, критические секции которого синхронизируются на самом объекте writer.
protected
Создаёт новый объект для записи в символьный поток, критические секции которого синхронизируются на заданном объекте.

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

Модификатор и тип Метод Описание
Writer append(char c)
Добавляет указанный символ в этот объект writer.
Writer append(CharSequence csq)
Добавляет указанную последовательность символов в этот объект writer.
Writer append(CharSequence csq, int start, int end)
Добавляет под последовательность указанной последовательности символов в этот объект writer.
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

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

lock

protected Object lock
Объект, используемый для синхронизации операций в этом потоке. Для повышения эффективности объект символьного потока может использовать для защиты критических секций объект, отличный от самого себя. Поэтому подклассу следует использовать объект из этого поля, а не this или синхронизированный метод.

Подробное описание конструкторов

Writer

protected Writer()
Создаёт новый объект для записи в символьный поток, критические секции которого синхронизируются на самом объекте 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 — целое число, задающее записываемый символ
Выбрасывает:
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
Добавляет указанную последовательность символов в этот объект writer.

Вызов этого метода в форме 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
Добавляет под последовательность указанной последовательности символов в этот объект writer.

Вызов этого метода в форме 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
Добавляет указанный символ в этот объект writer.

Вызов этого метода в форме out.append(c) ведёт себя точно так же, как вызов

    out.write(c)
Определено в:
append в интерфейсе Appendable
Параметры:
c — 16-разрядный символ для добавления
Возвращает:
Этот объект writer
Выбрасывает:
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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/Writer.html

Spec-Zone.ru

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