Spec-Zone.ru › OpenJDK 24

Класс 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)
Записывает часть строки.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

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.

Используемый для синхронизации операций с возвращённым Writer object не задан.

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

Вызов этого метода в форме 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() очистит все буферы в цепочке Writers и OutputStreams.

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

Определено в:
flush в интерфейсе Flushable
Исключения:
IOException - Если произошла ошибка ввода-вывода

close

public abstract void close() throws IOException
Закрывает поток, предварительно очистив его. После закрытия потока дальнейшие вызовы write() или flush() приведут к выбрасыванию 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/io/Writer.html

Spec-Zone.ru

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