Spec-Zone.ru › OpenJDK 27

Класс 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(anOutputStream));

Суррогатная пара — это символ, представленный последовательностью из двух значений char: старшего суррогата в диапазоне '\uD800'–'\uDBFF', за которым следует младший суррогат в диапазоне '\uDC00'–'\uDFFF'.

Некорректный суррогатный элемент — это старший суррогат, за которым не следует младший суррогат, или младший суррогат, которому не предшествует старший суррогат.

Этот класс всегда заменяет некорректные суррогатные элементы и последовательности символов, не отображаемые в кодировку, стандартной для данной кодировки последовательностью замены. Если требуется больший контроль над процессом кодирования, следует использовать класс CharsetEncoder.

Начиная с версии:
1.1
См. также:
  • BufferedWriter
  • OutputStream
  • Charset

Краткое описание полей

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

lock
Модификатор и тип Поле Описание
protected Object lock
Объект, используемый для синхронизации операций с этим потоком.

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

Конструктор Описание
OutputStreamWriter(OutputStream out)
Создает OutputStreamWriter, использующий кодировку символов по умолчанию; если out является PrintStream, используется кодировка потока печати.
OutputStreamWriter(OutputStream out, String charsetName)
Создает OutputStreamWriter, использующий именованную кодировку.
OutputStreamWriter(OutputStream out, Charset cs)
Создает OutputStreamWriter, использующий заданную кодировку.
OutputStreamWriter(OutputStream out, CharsetEncoder enc)
Создает 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)
Записывает часть строки.

Методы, объявленные в классе Writer

append, append, append, nullWriter, write, write
Модификатор и тип Метод Описание
Writer append(char c)
Добавляет указанный символ в этот объект записи.
Writer append(CharSequence csq)
Добавляет указанную последовательность символов в этот объект записи.
Writer append(CharSequence csq, int start, int end)
Добавляет подпоследовательность указанной последовательности символов в этот объект записи.
static Writer nullWriter()
Возвращает новый Writer, отбрасывающий все символы.
void write(char[] cbuf)
Записывает массив символов.
void write(String str)
Записывает строку.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация устарела и будет удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода для этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени.

Подробное описание конструкторов

OutputStreamWriter

public OutputStreamWriter(OutputStream out, String charsetName) throws UnsupportedEncodingException
Создает OutputStreamWriter, использующий именованную кодировку.
Параметры:
out — выходной поток
charsetName — имя поддерживаемой charset
Исключения:
UnsupportedEncodingException — если указанная кодировка не поддерживается

OutputStreamWriter

public OutputStreamWriter(OutputStream out)
Создает OutputStreamWriter, использующий кодировку символов по умолчанию; если out является PrintStream, используется кодировка потока печати.
Параметры:
out — выходной поток
См. также:
  • Charset.defaultCharset()

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 — целое число, задающее символ для записи
Исключения:
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
Закрывает поток, предварительно сбрасывая его буфер. После закрытия потока дальнейшие вызовы write() или flush() приведут к выбросу IOException. Повторное закрытие уже закрытого потока не оказывает никакого эффекта.
Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Определено в:
close в классе Writer
Исключения:
IOException — если произошла ошибка ввода-вывода

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API