Spec-Zone.ru › OpenJDK 17

Класс Reader

java.lang.Object
java.io.Reader
Все реализованные интерфейсы:
Closeable, AutoCloseable, Readable
Непосредственные известные подклассы:
BufferedReader, CharArrayReader, FilterReader, InputStreamReader, PipedReader, StringReader
public abstract class Reader extends Object implements Readable, Closeable
Абстрактный класс для чтения потоков символов. Единственными методами, которые должен реализовать подкласс, являются read(char[], int, int) и close(). Однако большинство подклассов переопределят некоторые методы, определенные здесь, для обеспечения большей эффективности, дополнительных функций или того и другого.
С:
1.1
См. также:
  • BufferedReader
  • LineNumberReader
  • CharArrayReader
  • InputStreamReader
  • FileReader
  • FilterReader
  • PushbackReader
  • PipedReader
  • StringReader
  • Writer

Краткое описание полей

Модификатор и тип Поле Описание
protected Object lock
Объект, используемый для синхронизации операций над этим потоком.

Краткое описание конструкторов

Reader()
Reader(Object lock)
Модификатор Конструктор Описание
protected
Создает новый читатель потока символов, чьи критические секции будут синхронизированы на самом читателе.
protected
Создает новый читатель потока символов, чьи критические секции будут синхронизированы на заданном объекте.

Краткое описание методов

Модификатор и тип Метод Описание
abstract void close()
Закрывает поток и освобождает все системные ресурсы, связанные с ним.
void mark(int readAheadLimit)
Помечает текущее положение в потоке.
boolean markSupported()
Указывает, поддерживает ли этот поток операцию mark().
static Reader nullReader()
Возвращает новый Reader, который не читает никаких символов.
int read()
Читает один символ.
int read(char[] cbuf)
Читает символы в массив.
abstract int read(char[] cbuf, int off, int len)
Читает символы в часть массива.
int read(CharBuffer target)
Пытается прочитать символы в указанный буфер символов.
boolean ready()
Указывает, готов ли этот поток к чтению.
void reset()
Сбрасывает поток.
long skip(long n)
Пропускает символы.
long transferTo(Writer out)
Читает все символы из этого читателя и записывает символы в заданный писатель в том порядке, в котором они читаются.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

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
Попытка прочитать символы в указанный буфер символов. Буфер используется как хранилище символов как есть: единственные изменения — результаты операции put. Никакого переворачивания или перемотки буфера не выполняется.
Определено в:
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()
Указывает, поддерживает ли этот поток операцию mark(). По умолчанию реализация всегда возвращает false. Подклассы должны переопределить этот метод.
Возвращает:
true, если и только если этот поток поддерживает операцию mark.

mark

public void mark(int readAheadLimit) throws IOException
Помечает текущую позицию в потоке. Последующие вызовы reset() попытаются переместить поток в эту точку. Не все потоки символьного ввода поддерживают операцию mark().
Параметры:
readAheadLimit - Ограничение на количество символов, которое может быть прочитано, сохраняя метку. После чтения этого количества символов, попытка сброса потока может потерпеть неудачу.
Исключения:
IOException - Если поток не поддерживает mark(), или произошла ошибка ввода-вывода

reset

public void reset() throws IOException
Сбрасывает поток. Если поток помечен, попытка переместить его в точку метки. Если поток не помечен, то попытка сброса выполняется каким-то способом, соответствующим конкретному потоку, например, возвращая его в исходную точку. Не все потоки символьного ввода поддерживают операцию reset(), и некоторые поддерживают reset() без поддержки mark().
Исключения:
IOException - Если поток не был помечен, или метка устарела, или поток не поддерживает reset(), или произошла ошибка ввода-вывода

close

public abstract void close() throws IOException
Закрывает поток и высвобождает все системные ресурсы, связанные с ним. После закрытия потока дальнейшие вызовы read(), ready(), mark(), reset() или skip() будут выбрасывать 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API