Класс OutputStreamWriter
- java.lang.Object
-
- java.io.Writer
-
- java.io.OutputStreamWriter
- Все реализованные интерфейсы:
- Closeable, Flushable, Appendable, AutoCloseable
- Прямые известные подклассы:
- FileWriter
public class OutputStreamWriter extends Writer
OutputStreamWriter — это мост между потоками символов и потоками байтов: символы, записанные в него, кодируются в байты с использованием указанного charset. Кодировка, которую он использует, может быть указана по имени или задана явно, или может быть принята кодировка по умолчанию платформы.
Каждый вызов метода write() вызывает вызов преобразователя кодирования для заданного(ых) символа(ов). Результирующие байты накапливаются в буфере перед записью в основной поток вывода. Размер этого буфера может быть указан, но по умолчанию он достаточно велик для большинства целей. Обратите внимание, что символы, передаваемые методам write(), не буферизуются.
Для максимальной эффективности рекомендуется обернуть OutputStreamWriter в BufferedWriter, чтобы избежать частых вызовов преобразователя. Например:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
Пара суррогатов — это символ, представленный последовательностью из двух char значений: высокий суррогат в диапазоне от '\uD800' до '\uDBFF', за которым следует низкий суррогат в диапазоне от '\uDC00' до '\uDFFF'.
Неправильный элемент суррогата — это высокий суррогат, за которым не следует низкий суррогат, или низкий суррогат, которому не предшествует высокий суррогат.
Этот класс всегда заменяет неправильные элементы суррогата и неотображаемые последовательности символов на последовательность подстановки по умолчанию для кодировки. Класс CharsetEncoder следует использовать, когда требуется больший контроль над процессом кодирования.
- С момента:
- JDK1.1
- См. также:
-
BufferedWriter,OutputStream,Charset
Поля
Поля, унаследованные от класса java.io.Writer
lock Краткое описание конструкторов
| Конструктор и описание |
|---|
OutputStreamWriter(OutputStream out) Создает OutputStreamWriter, использующий кодировку символов по умолчанию. |
OutputStreamWriter(OutputStream out,
Charset cs) Создает OutputStreamWriter, использующий заданную кодировку. |
OutputStreamWriter(OutputStream out,
CharsetEncoder enc) Создает OutputStreamWriter, использующий заданный кодировщик наборов символов. |
OutputStreamWriter(OutputStream out,
String charsetName) Создает OutputStreamWriter, использующий заданную кодировку наборов символов. |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
void |
close() Закрывает поток, предварительно его сбросив. |
void |
flush() Сбрасывает поток. |
String |
getEncoding() Возвращает имя кодировки символов, используемой данным потоком. |
void |
write(char[] cbuf,
int off,
int len) Записывает часть массива символов. |
void |
write(int c) Записывает один символ. |
void |
write(String str,
int off,
int len) Записывает часть строки. |
Методы, унаследованные от класса java.io.Writer
append, append, append, write, write Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Подробное описание конструкторов
OutputStreamWriter
public OutputStreamWriter(OutputStream out,
String charsetName)
throws UnsupportedEncodingException Создает OutputStreamWriter, использующий заданную кодировку наборов символов.
- Параметры:
-
out- Поток вывода -
charsetName- Имя поддерживаемойcharset - Исключения:
-
UnsupportedEncodingException- Если указанная кодировка не поддерживается
OutputStreamWriter
public OutputStreamWriter(OutputStream out)
Создает OutputStreamWriter, использующий кодировку символов по умолчанию.
- Параметры:
-
out- Поток вывода
OutputStreamWriter
public OutputStreamWriter(OutputStream out,
Charset cs) Создает OutputStreamWriter, использующий заданную кодировку.
- Параметры:
-
out- Поток вывода -
cs- Кодировка - С момента:
- 1.4
OutputStreamWriter
public OutputStreamWriter(OutputStream out,
CharsetEncoder enc) Создает OutputStreamWriter, использующий заданный кодировщик наборов символов.
- Параметры:
-
out- Поток вывода -
enc- Кодировщик наборов символов - С момента:
- 1.4
Подробное описание методов
getEncoding
public String getEncoding()
Возвращает имя кодировки символов, используемой данным потоком.
Если кодировка имеет историческое имя, то возвращается это имя; в противном случае возвращается каноническое имя кодировки.
Если этот экземпляр был создан с помощью конструктора OutputStreamWriter(OutputStream, String), то возвращаемое имя, уникальное для кодировки, может отличаться от имени, переданного в конструктор. Этот метод может вернуть null если поток закрыт.
- Возвращает:
- Историческое имя этой кодировки, или возможно
nullесли поток закрыт - См. также:
Charset
write
public void write(int c)
throws IOException Записывает один символ.
- Переопределяет:
-
writeв классеWriter - Параметры:
-
c- int, определяющий символ для записи - Исключения:
-
IOException- Если возникает ошибка ввода/вывода
write
public void write(char[] cbuf,
int off,
int len)
throws IOException Записывает часть массива символов.
- Определено в:
-
writeв классеWriter - Параметры:
-
cbuf- Буфер символов -
off- Смещение, с которого начинать запись символов -
len- Количество символов для записи - Исключения:
-
IOException- Если возникает ошибка ввода/вывода
write
public void write(String str,
int off,
int len)
throws IOException Записывает часть строки.
- Переопределяет:
-
writeв классеWriter - Параметры:
-
str- Строка -
off- Смещение, с которого начинать запись символов -
len- Количество символов для записи - Исключения:
-
IOException- Если возникает ошибка ввода/вывода
flush
public void flush()
throws IOException Сбрасывает поток.
- Определено в:
-
flushв интерфейсеFlushable - Определено в:
-
flushв классеWriter - Исключения:
-
IOException- Если возникает ошибка ввода/вывода
close
public void close()
throws IOException Описание скопировано из класса: Writer
Закрывает поток, предварительно его сбросив. После закрытия потока дальнейшие вызовы write() или flush() приведут к сбрасыванию IOException. Закрытие ранее закрытого потока не оказывает никакого эффекта.
- Определено в:
-
closeв интерфейсеCloseable - Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв классеWriter - Исключения:
-
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.