Класс Reader
- Все реализуемые интерфейсы:
-
Closeable,AutoCloseable,Readable
- Непосредственные известные подклассы:
-
BufferedReader,CharArrayReader,FilterReader,InputStreamReader,PipedReader,StringReader
public abstract class Reader extends Object implements Readable, Closeable
- С:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected Object |
lock |
Объект, используемый для синхронизации операций с этим потоком. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новый ридер потока символов, чьи критические секции будут синхронизированы на самом ридере. |
|
protected |
Создаёт новый ридер потока символов, чьи критические секции будут синхронизированы на заданном объекте. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
close() |
Закрывает поток и освобождает все связанные с ним системные ресурсы. |
void |
mark |
Помечает текущую позицию в потоке. |
boolean |
markSupported() |
Указывает, поддерживает ли этот поток операцию mark(). |
static Reader |
nullReader() |
Возвращает новый Reader, который не читает ни одного символа. |
static Reader |
of |
Возвращает Reader, который считывает символы из CharSequence. |
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 не определён.
- Возвращает:
Reader, который не читает символы- С:
- 11
of
public static Reader of(CharSequence cs)
Reader, который читает символы из CharSequence. Читатель изначально открыт, и чтение начинается с первого символа в последовательности. Возвращаемый читатель поддерживает операции mark() и reset().
Полученный читатель не безопасен для использования несколькими потоками одновременно. Если читатель будет использоваться более чем одним потоком, его необходимо контролировать с помощью соответствующей синхронизации.
Если последовательность изменяется при открытом читателе, например, изменяется длина, поведение неопределено.
- Параметры:
-
cs-CharSequence, предоставляющий поток символов. - Возвращает:
Reader, который читает символы изcs- Выбрасывает:
-
NullPointerException- еслиcsявляетсяnull - С:
- 24
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
- Возвращает:
- Истина, если следующее чтение гарантированно не будет заблокировано для ввода, ложь в противном случае. Обратите внимание, что возвращение ложного значения не гарантирует, что следующее чтение будет заблокировано.
- Выбрасывает:
-
IOException- Если произошла ошибка ввода-вывода
markSupported
public boolean markSupported()
- Возвращает:
- Истина, если и только если этот поток поддерживает операцию 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
Этот метод может блокироваться неопределенно долго, ожидая чтения из потока чтения или записи в поток записи. Поведение в случае асинхронного закрытия потока чтения и/или записи или прерывания потока во время передачи зависит от конкретной реализации потоков чтения и записи, поэтому не определено.
Если общее количество переданных символов превышает Long.MAX_VALUE, то будет возвращено значение Long.MAX_VALUE.
Если при чтении из потока чтения или записи в поток записи возникает ошибка ввода-вывода, то это может произойти после чтения или записи некоторых символов. Следовательно, поток чтения может не находиться в конце потока, а один или оба потока могут быть в несогласованном состоянии. Настоятельно рекомендуется как можно скорее закрыть оба потока, если возникает ошибка ввода-вывода.
- Параметры:
-
out- поток записи, не null - Возвращает:
- количество переданных символов
- Исключения:
-
IOException- если при чтении или записи возникает ошибка ввода-вывода -
NullPointerException- еслиoutравноnull - С:
- 10
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/io/Reader.html