Класс CharArrayReader
- java.lang.Object
-
- java.io.Reader
-
- java.io.CharArrayReader
- Все реализованные интерфейсы:
-
Closeable,AutoCloseable,Readable
public class CharArrayReader extends Reader
Этот класс реализует буфер символов, который может использоваться в качестве потока символьного ввода.
- С момента:
- 1.1
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected char[] | buf | Буфер символов. |
protected int | count | Индекс конца этого буфера. |
protected int | markedPos | Индекс метки в буфере. |
protected int | pos | Текущая позиция буфера. |
Поля, объявленные в классе java.io.Reader
lockКонструкторы
| Конструктор | Описание |
|---|---|
CharArrayReader(char[] buf) | Создает CharArrayReader из указанного массива символов. |
CharArrayReader(char[] buf,
int offset,
int length) | Создает CharArrayReader из указанного массива символов. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | close() | Закрывает поток и высвобождает любые системные ресурсы, связанные с ним. |
void | mark(int readAheadLimit) | Помечает текущую позицию в потоке. |
boolean | markSupported() | Указывает, поддерживает ли этот поток операцию mark(), что он делает. |
int | read() | Считывает один символ. |
int | read(char[] b,
int off,
int len) | Считывает символы в часть массива. |
boolean | ready() | Указывает, готов ли этот поток к чтению. |
void | reset() | Возвращает поток к последней метке или к началу, если метка никогда не была установлена. |
long | skip(long n) | Пропускает символы. |
Методы, объявленные в классе java.io.Reader
nullReader, read, read, transferToМетоды, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitПодробное описание полей
buf
protected char[] buf
Буфер символов.
pos
protected int pos
Текущая позиция буфера.
markedPos
protected int markedPos
Индекс метки в буфере.
count
protected int count
Индекс конца этого буфера. Данные за этим индексом недействительны.
Подробное описание конструкторов
CharArrayReader
public CharArrayReader(char[] buf)
Создаёт CharArrayReader из указанного массива символов.
- Параметры:
-
buf- Буфер ввода (не копируется)
CharArrayReader
public CharArrayReader(char[] buf,
int offset,
int length)Создает CharArrayReader из заданного массива символов.
Результирующий поток начнет чтение с указанного offset. Общее количество char значений, которые могут быть считаны из этого потока, будет равно length или buf.length-offset, в зависимости от меньшего значения.
- Параметры:
-
buf- Буфер ввода (не копируется) -
offset- Смещение первого считываемого символа -
length- Количество считываемых символов - Исключения:
-
IllegalArgumentException- Еслиoffsetотрицательно или большеbuf.length, или еслиlengthотрицательно, или если сумма этих двух значений отрицательна.
Подробное описание методов
read
public int read()
throws IOException Считывает один символ.
- Переопределяет:
-
readв классеReader - Возвращает:
- Считанный символ, как целое число в диапазоне от 0 до 65535 (
0x00-0xffff), или -1, если достигнут конец потока - Исключения:
-
IOException- Если произошла ошибка ввода-вывода
read
public int read(char[] b,
int off,
int len)
throws IOException Считывает символы в часть массива.
- Определено в:
-
readв классеReader - Параметры:
-
b- Буфер назначения -
off- Смещение для начала записи символов -
len- Максимальное количество считываемых символов - Возвращает:
- Фактическое количество считанных символов, или -1, если достигнут конец потока
- Исключения:
-
IOException- Если произошла ошибка ввода-вывода -
IndexOutOfBoundsException- Если произошла ошибка ввода-вывода
skip
public long skip(long n)
throws IOExceptionПропускает символы. Возвращает количество пропущенных символов.
Параметр n может быть отрицательным, даже если метод skip суперкласса Reader выбрасывает исключение в этом случае. Если n отрицательно, то этот метод ничего не делает и возвращает 0.
- Переопределяет:
-
skipв классеReader - Параметры:
-
n- Количество символов для пропуска - Возвращает:
- Количество фактически пропущенных символов
- Исключения:
-
IOException- Если поток закрыт или произошла ошибка ввода-вывода
ready
public boolean ready()
throws IOException Определяет, готов ли этот поток к чтению. Потоки массивов символов всегда готовы к чтению.
- Переопределяет:
-
readyв классеReader - Возвращает:
- True, если следующее чтение гарантированно не будет блокироваться ожиданием ввода, false в противном случае. Обратите внимание, что возвращение false не гарантирует, что следующее чтение будет заблокировано.
- Исключения:
-
IOException- Если произошла ошибка ввода-вывода
markSupported
public boolean markSupported()
Указывает, поддерживает ли этот поток операцию mark(), что он делает.
- Переопределяет:
-
markSupportedв классеReader - Возвращает:
- true, если и только если этот поток поддерживает операцию mark.
mark
public void mark(int readAheadLimit)
throws IOException Помечает текущую позицию в потоке. Последующие вызовы reset() переместят поток в эту точку.
- Переопределяет:
-
markв классеReader - Параметры:
-
readAheadLimit- Ограничение на количество символов, которые могут быть считанны, сохраняя при этом метку. Так как вход потока происходит из массива символов, фактического ограничения нет, поэтому этот аргумент игнорируется. - Исключения:
-
IOException- Если произошла ошибка ввода-вывода
reset
public void reset()
throws IOException Возвращает поток к последней метке или к началу, если метка никогда не была установлена.
- Переопределяет:
-
resetв классеReader - Исключения:
-
IOException- Если произошла ошибка ввода-вывода
close
public void close()
Закрывает поток и высвобождает все системные ресурсы, связанные с ним. После закрытия потока дальнейшие вызовы read(), ready(), mark(), reset() или skip() вызовут исключение 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/CharArrayReader.html