Класс InputStreamReader
- java.lang.Object
-
- java.io.Reader
-
- java.io.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, использующий заданный декодер кодировки. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
String | getEncoding() | Возвращает имя кодировки символов, используемой этим потоком. |
int | read() | Читает один символ. |
int | read(char[] cbuf,
int offset,
int length) | Читает символы в часть массива. |
boolean | ready() | Определяет, готов ли этот поток к чтению. |
Методы, объявленные в классе 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