Spec-Zone.ru › OpenJDK 27

Класс InputStreamReader

java.lang.Object
java.io.Reader
java.io.InputStreamReader
Все реализуемые интерфейсы:
Closeable, AutoCloseable, Readable
Прямые известные подклассы:
FileReader
public class InputStreamReader extends Reader
InputStreamReader служит мостом между потоками байтов и потоками символов: он считывает байты и декодирует их в символы, используя указанную charset. Используемая кодировка может быть задана по имени или явно, также может использоваться default charset.

Каждый вызов одного из методов read() класса InputStreamReader может привести к считыванию одного или нескольких байтов из базового потока ввода байтов. Для эффективного преобразования байтов в символы из базового потока может быть предварительно считано больше байтов, чем необходимо для выполнения текущей операции чтения.

Для повышения эффективности рекомендуется обернуть InputStreamReader в BufferedReader. Например:

    BufferedReader in = new BufferedReader(new InputStreamReader(anInputStream));

Для чтения из System.in используйте значение системного свойства stdin.encoding в качестве Charset:

    new InputStreamReader(System.in, System.getProperty("stdin.encoding"));
С версии:
1.1
См. также:
  • BufferedReader
  • InputStream
  • Charset
  • stdin.encoding

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

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

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

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

Конструктор Описание
InputStreamReader(InputStream in)
Создает InputStreamReader, использующий default charset.
InputStreamReader(InputStream in, String charsetName)
Создает InputStreamReader, использующий именованную кодировку.
InputStreamReader(InputStream in, Charset cs)
Создает InputStreamReader, использующий заданную кодировку.
InputStreamReader(InputStream in, CharsetDecoder dec)
Создает InputStreamReader, использующий заданный декодер кодировки.

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

Модификатор и тип Метод Описание
void close()
Закрывает поток и освобождает все связанные с ним системные ресурсы.
String getEncoding()
Возвращает название кодировки символов, используемой этим потоком.
int read()
Считывает один символ.
int read(char[] cbuf, int off, int len)
Считывает символы в часть массива.
boolean ready()
Проверяет, готов ли этот поток к чтению.

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

mark, markSupported, nullReader, of, read, read, readAllAsString, readAllLines, reset, skip, transferTo
Модификатор и тип Метод Описание
void mark(int readAheadLimit)
Помечает текущую позицию в потоке.
boolean markSupported()
Проверяет, поддерживает ли этот поток операцию mark().
static Reader nullReader()
Возвращает новый Reader, который не считывает символы.
static Reader of(CharSequence cs)
Возвращает Reader, считывающий символы из CharSequence.
int read(char[] cbuf)
Считывает символы в массив.
int read(CharBuffer target)
Пытается считать символы в указанный символьный буфер.
String readAllAsString()
Считывает все оставшиеся символы в строку.
List<String> readAllLines()
Считывает все оставшиеся символы как строки текста.
void reset()
Сбрасывает поток.
long skip(long n)
Пропускает символы.
long transferTo(Writer out)
Считывает все символы из этого средства чтения и записывает их в заданное средство записи в порядке считывания.

Методы, объявленные в классе 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()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного времени.

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

InputStreamReader

public InputStreamReader(InputStream in)
Создает InputStreamReader, использующий default charset.
Параметры:
in — входной поток
См. также:
  • Charset.defaultCharset()

InputStreamReader

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

InputStreamReader

public InputStreamReader(InputStream in, Charset cs)
Создает InputStreamReader, использующий заданную кодировку.
Параметры:
in — входной поток
cs — кодировка
С версии:
1.4

InputStreamReader

public InputStreamReader(InputStream in, CharsetDecoder dec)
Создает InputStreamReader, использующий заданный декодер кодировки.
Параметры:
in — входной поток
dec — декодер кодировки
С версии:
1.4

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

getEncoding

public String getEncoding()
Возвращает название кодировки символов, используемой этим потоком.

Если у кодировки есть историческое название, возвращается оно; в противном случае возвращается каноническое название кодировки.

Если этот экземпляр создан с помощью конструктора InputStreamReader(InputStream, String), возвращаемое название, уникальное для кодировки, может отличаться от названия, переданного конструктору. Если поток закрыт, этот метод возвращает null.

Возвращает:
Историческое название этой кодировки или null, если поток закрыт
См. также:
  • Charset

read

public int read() throws IOException
Считывает один символ.
Переопределяет:
read в классе Reader
Возвращает:
Считанный символ или -1, если достигнут конец потока
Исключения:
IOException — если произошла ошибка ввода-вывода

read

public int read(char[] cbuf, int off, int len) throws IOException
Считывает символы в часть массива. Этот метод блокирует выполнение до тех пор, пока не появятся входные данные, не произойдет ошибка ввода-вывода или не будет достигнут конец потока.

Если len равно нулю, символы не считываются и возвращается 0; в противном случае предпринимается попытка считать хотя бы один символ. Если символы недоступны, поскольку достигнут конец потока, возвращается значение -1; в противном случае считывается и сохраняется в cbuf как минимум один символ.

Определено в:
read в классе Reader
Параметры:
cbuf — буфер назначения
off — смещение, с которого начинается сохранение символов
len — максимальное количество считываемых символов
Возвращает:
Количество считанных символов или -1, если достигнут конец потока
Исключения:
IndexOutOfBoundsException — если off отрицательно, len отрицательно или len больше cbuf.length - off
IOException — если произошла ошибка ввода-вывода

ready

public boolean ready() throws IOException
Проверяет, готов ли этот поток к чтению. InputStreamReader готов к чтению, если его входной буфер не пуст или из базового потока байтов доступны байты для чтения.
Переопределяет:
ready в классе Reader
Возвращает:
True, если следующий вызов read() гарантированно не будет блокироваться в ожидании входных данных; в противном случае — false. Обратите внимание: возврат false не гарантирует, что следующий вызов read будет заблокирован.
Исключения:
IOException — если произошла ошибка ввода-вывода

close

public void close() throws IOException
Описание скопировано из класса: Reader
Закрывает поток и освобождает все связанные с ним системные ресурсы. После закрытия потока дальнейшие вызовы read(), ready(), mark(), reset() или skip() приведут к выбросу IOException. Повторное закрытие уже закрытого потока не оказывает никакого эффекта.
Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Определено в:
close в классе Reader
Исключения:
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