Класс 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(). Однако большинство подклассов переопределяют некоторые методы, определённые здесь, чтобы обеспечить более высокую эффективность, дополнительную функциональность или оба.
- С тех пор:
- JDK1.1
- См. также:
-
Writer,BufferedWriter,CharArrayWriter,FilterWriter,OutputStreamWriter,FileWriter,PipedWriter,PrintWriter,StringWriter,Reader
Поля
| Модификатор и тип | Поле и описание |
|---|---|
protected Object |
lock Объект, используемый для синхронизации операций с этим потоком. |
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
Writer() Создаёт новый поток записи символов, чьи критические секции будут синхронизированы с самим потоком. |
protected |
Writer(Object lock) Создаёт новый поток записи символов, чьи критические секции будут синхронизированы с данным объектом. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Writer |
append(char c) Добавляет указанный символ в этот поток. |
Writer |
append(CharSequence csq) Добавляет указанную последовательность символов в этот поток. |
Writer |
append(CharSequence csq,
int start,
int end) Добавляет подпоследовательность указанной последовательности символов в этот поток. |
abstract void |
close() Закрывает поток, предварительно сбросив его. |
abstract void |
flush() Сбрасывает поток. |
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- Объект для синхронизации
Подробное описание методов
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- Количество символов для записи - Исключения:
-
IOException- Если происходит ошибка ввода-вывода
write
public void write(String str)
throws IOException Записывает строку.
- Параметры:
-
str- Строка для записи - Исключения:
-
IOException- Если происходит ошибка ввода-вывода
write
public void write(String str,
int off,
int len)
throws IOException Записывает часть строки.
- Параметры:
-
str- Строка -
off- Смещение для начала записи символов -
len- Количество символов для записи - Исключения:
-
IndexOutOfBoundsException- Еслиoffотрицательно, илиlenотрицательно, илиoff+lenотрицательно или больше длины заданной строки -
IOException- Если происходит ошибка ввода-вывода
append
public Writer append(CharSequence csq)
throws IOException Добавляет указанную последовательность символов в этот поток.
Вызов этого метода в формате out.append(csq) ведет себя точно так же, как вызов
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 Добавляет подпоследовательность указанной последовательности символов в этот поток. Appendable.
Вызов этого метода в формате 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в интерфейсеCloseable - Определено в:
-
closeв интерфейсеAutoCloseable - Исключения:
-
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.