Класс InputStreamReader

Все реализованные интерфейсы:
Closeable, AutoCloseable, Readable
Прямые известные подклассы:
FileReader
public class InputStreamReader
extends Reader

Класс InputStreamReader — это мост между потоками байтов и потоками символов: он считывает байты и декодирует их в символы, используя указанный charset. Кодировка символов может быть указана по имени, явно задана или принята по умолчанию для платформы.

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

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

BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));
С момента:
1.1
См. также:
BufferedReader, InputStream, Charset

Поля

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

lock

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

КонструкторОписание
InputStreamReader​(InputStream in)

Создаёт InputStreamReader, использующий кодировку по умолчанию.

InputStreamReader​(InputStream in, String charsetName)

Создаёт InputStreamReader, использующий указанную кодировку по имени.

InputStreamReader​(InputStream in, Charset cs)

Создаёт InputStreamReader, использующий заданную кодировку.

InputStreamReader​(InputStream in, CharsetDecoder dec)

Создаёт InputStreamReader, использующий заданный декодер кодировки.

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

Модификатор и типМетодОписание
StringgetEncoding()

Возвращает имя кодировки символов, используемой этим потоком.

intread()

Читает один символ.

intread​(char[] cbuf, int offset, int length)

Читает символы в часть массива.

booleanready()

Определяет, готов ли этот поток к чтению.

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

close, mark, markSupported, nullReader, read, read, reset, skip, transferTo

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

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

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

InputStreamReader

public InputStreamReader(InputStream in)

Создаёт InputStreamReader, использующий кодировку по умолчанию.

Параметры:
in - Поток байтового ввода

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 offset,
                int length)
         throws IOException

Читает символы в часть массива.

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

ready

public boolean ready()
              throws IOException

Определяет, готов ли этот поток к чтению. InputStreamReader готов, если его буфер ввода не пуст или если из базового потока байтового ввода доступны байты для чтения.

Переопределяет:
ready в классе Reader
Возвращает:
true, если следующее чтение гарантированно не заблокирует вход, false в противном случае. Обратите внимание, что возвращение false не гарантирует, что следующее чтение заблокируется.
Исключения:
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/InputStreamReader.html

Spec-Zone .ru
спецификации, руководства, описания, API