Класс 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 следует использовать, когда требуется больший контроль над процессом кодирования.

С:
1.1
См. также:
BufferedWriter, OutputStream, Charset

Поля

Поля, объявленные в классе java.io.Writer

lock

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

Конструктор Описание
OutputStreamWriter​(OutputStream out)

Создаёт OutputStreamWriter, использующий кодировку символов по умолчанию.

OutputStreamWriter​(OutputStream out, String charsetName)

Создаёт OutputStreamWriter, использующий указанный набор символов по имени.

OutputStreamWriter​(OutputStream out, Charset cs)

Создаёт OutputStreamWriter, использующий заданный набор символов.

OutputStreamWriter​(OutputStream out, CharsetEncoder enc)

Создаёт OutputStreamWriter, использующий указанный кодировщик наборов символов.

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

Модификатор и тип Метод Описание
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, close, nullWriter, 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 - Количество символов для записи
Исключения:
IndexOutOfBoundsException - Если off отрицательно, или len отрицательно, или off + len отрицательно или больше длины заданного массива
IOException - Если произошла ошибка ввода-вывода

write

public void write(String str,
                  int off,
                  int len)
           throws IOException

Записывает часть строки.

Переопределяет:
write в классе Writer
Параметры:
str - Строка
off - Смещение, с которого начать запись символов
len - Количество символов для записи
Исключения:
IndexOutOfBoundsException - Если off отрицательно, или len отрицательно, или off + len отрицательно или больше длины заданной строки
IOException - Если произошла ошибка ввода-вывода

flush

public void flush()
           throws IOException

Сбрасывает поток.

Определяется:
flush в интерфейсе Flushable
Определяется:
flush в классе 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/OutputStreamWriter.html

Spec-Zone .ru
спецификации, руководства, описания, API