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