Spec-Zone.ru › OpenJDK 8

Класс 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(). Однако большинство подклассов переопределяют некоторые методы, определенные здесь, чтобы обеспечить более высокую эффективность, дополнительные функции или оба этих преимущества.

С момента:
JDK1.1
См. также:
BufferedReader, LineNumberReader, CharArrayReader, InputStreamReader, FileReader, FilterReader, PushbackReader, PipedReader, StringReader, Writer

Поля

Модификатор и тип Поле и описание
protected Object lock

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

Конструкторы

Модификатор Конструктор и описание
protected Reader()

Создает новый читатель потока символов, чьи критические секции будут синхронизироваться на самом читателе.

protected Reader(Object lock)

Создает новый читатель потока символов, чьи критические секции будут синхронизироваться на заданном объекте.

Методы

Модификатор и тип Метод и описание
abstract void close()

Закрывает поток и освобождает все системные ресурсы, связанные с ним.

void mark(int readAheadLimit)

Помечает текущую позицию в потоке.

boolean markSupported()

Указывает, поддерживает ли этот поток операцию mark().

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)

Пропускает символы.

Методы, унаследованные от класса 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 - Объект для синхронизации.

Методы

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 - Буфер назначения
Возвращает:
Количество прочитанных символов, или -1, если достигнут конец потока
Исключения:
IOException - Если произошла ошибка ввода/вывода

read

public abstract int read(char[] cbuf,
                         int off,
                         int len)
                  throws IOException

Читает символы в часть массива. Этот метод будет блокироваться до тех пор, пока некоторые данные не будут доступны, не произойдет ошибка ввода/вывода или не будет достигнут конец потока.

Параметры:
cbuf - Буфер назначения
off - Смещение, с которого начать хранение символов
len - Максимальное количество символов для чтения
Возвращает:
Количество прочитанных символов, или -1, если достигнут конец потока
Исключения:
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 в интерфейсе Closeable
Задано:
close в интерфейсе AutoCloseable
Исключения:
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.

Spec-Zone.ru

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