Класс OutputStreamWriter
- Все реализуемые интерфейсы:
Closeable, Flushable, Appendable, AutoCloseable
- Прямые известные подклассы:
FileWriter
public class OutputStreamWriter extends Writer
charset. Используемую кодировку можно указать по имени или задать явно, либо использовать кодировку по умолчанию. Каждый вызов метода write() приводит к вызову преобразователя кодировки для указанных символов. Полученные байты накапливаются в буфере, прежде чем будут записаны в базовый выходной поток. Обратите внимание, что символы, передаваемые методам write(), не буферизуются.
Для максимальной эффективности рекомендуется обернуть OutputStreamWriter в BufferedWriter, чтобы избежать частых вызовов преобразователя. Например:
Writer out = new BufferedWriter(new OutputStreamWriter(anOutputStream));
Суррогатная пара — это символ, представленный последовательностью из двух значений char: старший суррогат в диапазоне от '\uD800' до '\uDBFF', за которым следует младший суррогат в диапазоне от '\uDC00' до '\uDFFF'.
Некорректный суррогатный элемент — это старший суррогат, за которым не следует младший суррогат, или младший суррогат, перед которым не стоит старший суррогат.
Этот класс всегда заменяет некорректные суррогатные элементы и последовательности символов, не отображаемые в кодировку, на последовательность замены по умолчанию для этой кодировки. Если требуется больший контроль над процессом кодирования, следует использовать класс CharsetEncoder.
- С версии:
- 1.1
- См. также:
Краткое описание полей
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
OutputStreamWriter |
Создает OutputStreamWriter, использующий кодировку символов по умолчанию или, если out является PrintStream, кодировку, используемую потоком печати. |
OutputStreamWriter |
Создает OutputStreamWriter, использующий именованную кодировку. |
OutputStreamWriter |
Создает OutputStreamWriter, использующий заданную кодировку. |
OutputStreamWriter |
Создает OutputStreamWriter, использующий заданный кодировщик символов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает поток, предварительно сбрасывая его. |
void |
flush() |
Сбрасывает поток. |
String |
getEncoding() |
Возвращает имя используемой этим потоком кодировки символов. |
void |
write |
Записывает часть массива символов. |
void |
write |
Записывает один символ. |
void |
write |
Записывает часть строки. |
Подробное описание конструкторов
OutputStreamWriter
public OutputStreamWriter(OutputStream out, String charsetName) throws UnsupportedEncodingException
- Параметры:
-
out— выходной поток -
charsetName— имя поддерживаемойcharset - Исключения:
-
UnsupportedEncodingException— если именованная кодировка не поддерживается
OutputStreamWriter
public OutputStreamWriter(OutputStream out)
out является PrintStream, кодировку, используемую потоком печати.- Параметры:
-
out— выходной поток - См. также:
OutputStreamWriter
public OutputStreamWriter(OutputStream out, Charset cs)
- Параметры:
-
out— выходной поток -
cs— кодировка - С версии:
- 1.4
OutputStreamWriter
public OutputStreamWriter(OutputStream out, CharsetEncoder enc)
- Параметры:
-
out— выходной поток -
enc— кодировщик символов - С версии:
- 1.4
Подробное описание методов
getEncoding
public String getEncoding()
Если у кодировки есть историческое имя, возвращается оно; в противном случае возвращается каноническое имя кодировки.
Если этот экземпляр был создан с помощью конструктора OutputStreamWriter(OutputStream, String), возвращаемое имя, уникальное для этой кодировки, может отличаться от имени, переданного конструктору. Если поток был закрыт, этот метод может вернуть null.
- Возвращает:
- Историческое имя этой кодировки или, возможно,
null, если поток был закрыт - См. также:
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— если произошла ошибка ввода-вывода
close
public void close() throws IOException
Writer- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Определено в:
-
closeв классеWriter - Исключения:
-
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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/OutputStreamWriter.html