Класс 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, который не читает никаких символов. |
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
Этот метод может блокироваться неопределённое время при считывании из ридера или записи в райтеры. Поведение в случае асинхронного закрытия ридера и/или райтера или прерывания потока во время передачи сильно зависит от конкретной реализации ридера и райтера и поэтому не специфицировано.
Если общее количество переданных символов больше Long.MAX_VALUE, то возвращается Long.MAX_VALUE.
Если при чтении из ридера или записи в райтеры произошла ошибка ввода-вывода, то это может произойти после считывания или записи некоторых символов. Следовательно, ридер может не находиться в конце потока, и один или оба потока могут находиться в несогласованном состоянии. Настоятельно рекомендуется немедленно закрыть оба потока, если произошла ошибка ввода-вывода.
- Параметры:
-
out- райтеры, не null - Возвращает:
- количество переданных символов
- Выбрасывает:
-
IOException- если произошла ошибка ввода-вывода при чтении или записи -
NullPointerException- еслиoutравенnull - С тех пор:
- 10
© 1993, 2023, 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/21/docs/api/java.base/java/io/Reader.html