Класс Reader
- Все реализованные интерфейсы:
-
Closeable,AutoCloseable,Readable
- Непосредственные известные подклассы:
-
BufferedReader,CharArrayReader,FilterReader,InputStreamReader,PipedReader,StringReader
public abstract class Reader extends Object implements Readable, Closeable
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected Object |
lock |
Объект, используемый для синхронизации операций над этим потоком. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает новый читатель потока символов, чьи критические секции будут синхронизированы на самом читателе. |
|
protected |
Создает новый читатель потока символов, чьи критические секции будут синхронизированы на заданном объекте. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
close() |
Закрывает поток и освобождает все системные ресурсы, связанные с ним. |
void |
mark |
Помечает текущее положение в потоке. |
boolean |
markSupported() |
Указывает, поддерживает ли этот поток операцию mark(). |
static Reader |
nullReader() |
Возвращает новый Reader, который не читает никаких символов. |
int |
read() |
Читает один символ. |
int |
read |
Читает символы в массив. |
abstract int |
read |
Читает символы в часть массива. |
int |
read |
Пытается прочитать символы в указанный буфер символов. |
boolean |
ready() |
Указывает, готов ли этот поток к чтению. |
void |
reset() |
Сбрасывает поток. |
long |
skip |
Пропускает символы. |
long |
transferTo |
Читает все символы из этого читателя и записывает символы в заданный писатель в том порядке, в котором они читаются. |
Подробное описание полей
lock
protected Object lock
this или синхронизированный метод.Подробное описание конструкторов
Reader
protected Reader()
Reader
protected Reader(Object lock)
- Параметры:
-
lock- Объект для синхронизации.
Подробное описание методов
nullReader
public static Reader nullReader()
Reader , который не считывает никаких символов. Возвращаемый поток изначально открыт. Поток закрывается вызовом метода close(). Последующие вызовы close() не имеют эффекта. Пока поток открыт, методы read(), read(char[]), read(char[], int, int), read(CharBuffer),
ready(), skip(long), и transferTo() ведут себя так, как будто достигнут конец потока. После закрытия потока эти методы выбрасывают IOException.
Метод markSupported() возвращает false. Методы mark() и reset() выбрасывают IOException.
object , используемый для синхронизации операций с возвращаемым Reader , не определён.
- Возвращает:
- a
Readerкоторый не считывает символы - С:
- 11
read
public int read(CharBuffer target) throws IOException
- Определено в:
-
readв интерфейсеReadable - Параметры:
-
target- буфер для чтения символов - Возвращает:
- Количество символов, добавленных в буфер, или -1, если этот источник символов достиг своего конца
- Исключения:
-
IOException- если произошла ошибка ввода-вывода -
NullPointerException- если целевой объект равен null -
ReadOnlyBufferException- если целевой объект — буфер только для чтения - С:
- 1.5
read
public int read() throws IOException
Подклассы, которые планируют поддерживать эффективное ввод символов по одному, должны переопределить этот метод.
- Возвращает:
- Прочитанный символ в виде целого числа в диапазоне от 0 до 65535 (
0x00-0xffff), или -1, если достигнут конец потока - Исключения:
-
IOException- Если произошла ошибка ввода-вывода
read
public int read(char[] cbuf) throws IOException
Если длина cbuf равна нулю, то символы не читаются и возвращается 0; в противном случае производится попытка прочитать хотя бы один символ. Если символ недоступен, потому что поток достиг своего конца, возвращается значение -1; в противном случае считывается и сохраняется в cbuf по крайней мере один символ.
- Параметры:
-
cbuf- Буфер назначения - Возвращает:
- Количество прочитанных символов или -1, если достигнут конец потока
- Исключения:
-
IOException- Если произошла ошибка ввода-вывода
read
public abstract int read(char[] cbuf, int off, int len) throws IOException
Если len равна нулю, то символы не читаются и возвращается 0; в противном случае производится попытка прочитать хотя бы один символ. Если символ недоступен, потому что поток достиг своего конца, возвращается значение -1; в противном случае считывается и сохраняется в cbuf по крайней мере один символ.
- Параметры:
-
cbuf- Буфер назначения -
off- Смещение для начала сохранения символов -
len- Максимальное количество считываемых символов - Возвращает:
- Количество прочитанных символов или -1, если достигнут конец потока
- Исключения:
-
IndexOutOfBoundsException- Еслиoffотрицательно, илиlenотрицательно, илиlenбольшеcbuf.length - off -
IOException- Если произошла ошибка ввода-вывода
skip
public long skip(long n) throws IOException
- Параметры:
-
n- Количество символов для пропуска - Возвращает:
- Количество фактически пропущенных символов
- Исключения:
-
IllegalArgumentException- Еслиnотрицательно. -
IOException- Если произошла ошибка ввода-вывода
ready
public boolean ready() throws IOException
- Возвращает:
- True, если следующий вызов read() гарантированно не будет блокироваться, иначе false. Обратите внимание, что возвращение false не гарантирует, что следующий вызов read() заблокируется.
- Исключения:
-
IOException- Если произошла ошибка ввода-вывода
markSupported
public boolean markSupported()
- Возвращает:
- true, если и только если этот поток поддерживает операцию mark.
mark
public void mark(int readAheadLimit) throws IOException
- Параметры:
-
readAheadLimit- Ограничение на количество символов, которое может быть прочитано, сохраняя метку. После чтения этого количества символов, попытка сброса потока может потерпеть неудачу. - Исключения:
-
IOException- Если поток не поддерживает mark(), или произошла ошибка ввода-вывода
reset
public void reset() throws IOException
- Исключения:
-
IOException- Если поток не был помечен, или метка устарела, или поток не поддерживает reset(), или произошла ошибка ввода-вывода
close
public abstract void close() throws IOException
- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Исключения:
-
IOException- Если произошла ошибка ввода-вывода
transferTo
public long transferTo(Writer out) throws IOException
Этот метод может блокироваться неопределённое время при чтении из читателя или записи в писатель. Поведение в случае, когда читатель и/или писатель асинхронно закрыт, или поток прерван во время передачи, зависит от конкретных читателя и писателя, и поэтому не определено.
Если произошла ошибка ввода-вывода при чтении из читателя или записи в писатель, то это может произойти после чтения или записи некоторых символов. Вследствие этого читатель может не находиться в конце потока, и один или оба потока могут находиться в несогласованном состоянии. Сильно рекомендуется как можно скорее закрыть оба потока, если произошла ошибка ввода-вывода.
- Параметры:
-
out- писатель, не null - Возвращает:
- количество переданных символов
- Исключения:
-
IOException- если произошла ошибка ввода-вывода при чтении или записи -
NullPointerException- еслиoutравенnull - С:
- 10
© 1993, 2021, 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/17/docs/api/java.base/java/io/Reader.html