Класс 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));
- С:
- JDK1.1
- См. также:
-
BufferedReader,InputStream,Charset
Поля
Поля, унаследованные от класса java.io.Reader
lock Краткое описание конструкторов
| Конструктор и описание |
|---|
InputStreamReader(InputStream in) Создаёт InputStreamReader, использующий кодировку по умолчанию. |
InputStreamReader(InputStream in,
Charset cs) Создаёт InputStreamReader, использующий указанную кодировку. |
InputStreamReader(InputStream in,
CharsetDecoder dec) Создаёт InputStreamReader, использующий указанный декодер кодировки. |
InputStreamReader(InputStream in,
String charsetName) Создаёт InputStreamReader, использующий кодировку по имени. |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
void |
close() Закрывает поток и освобождает связанные с ним системные ресурсы. |
String |
getEncoding() Возвращает имя кодировки символов, используемой этим потоком. |
int |
read() Считывает один символ. |
int |
read(char[] cbuf,
int offset,
int length) Считывает символы в часть массива. |
boolean |
ready() Определяет, готов ли этот поток для чтения. |
Методы, унаследованные от класса java.io.Reader
mark, markSupported, read, read, reset, skip Методы, унаследованные от класса 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- Если произошла ошибка ввода/вывода
ready
public boolean ready()
throws IOException Определяет, готов ли этот поток к чтению. InputStreamReader готов, если его буфер ввода не пуст или если байты доступны для чтения из базового потока байтов.
- Переопределяет:
-
readyв классеReader - Возвращает:
- True, если следующее чтение гарантированно не заблокируется в ожидании ввода, false в противном случае. Обратите внимание, что возвращение false не гарантирует, что следующее чтение заблокируется.
- Исключения:
-
IOException- Если произошла ошибка ввода/вывода
close
public void close()
throws IOException Описание скопировано из класса: Reader
Закрывает поток и освобождает связанные с ним системные ресурсы. После закрытия потока дальнейшие вызовы read(), ready(), mark(), reset() или skip() будут генерировать исключение IOException. Закрытие уже закрытого потока не оказывает никакого влияния.
- Определено в:
-
closeв интерфейсеCloseable - Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв классеReader - Исключения:
-
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.