Spec-Zone.ru › OpenJDK 25

Класс 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

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

Конструктор Описание
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

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

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 не гарантирует блокировку следующей операции чтения.
Исключения:
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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/InputStreamReader.html

Spec-Zone.ru

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