Класс PushbackReader
java.lang.Object
java.io.Reader
java.io.FilterReader
java.io.PushbackReader
- Все реализуемые интерфейсы:
Closeable, AutoCloseable, Readable
public class PushbackReader extends FilterReader
Потоковый символьный ридер, позволяющий возвращать символы обратно в поток.
- Начиная с версии:
- 1.1
Краткое описание полей
Поля, объявленные в классе FilterReader
in
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
PushbackReader |
Создает новый ридер с буфером возврата размером в один символ. |
PushbackReader |
Создает новый ридер с буфером возврата заданного размера. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает поток и освобождает все связанные с ним системные ресурсы. |
void |
mark |
Отмечает текущую позицию в потоке. |
boolean |
markSupported() |
Сообщает, поддерживает ли этот поток операцию mark(), которую он не поддерживает. |
int |
read() |
Считывает один символ. |
boolean |
ready() |
Сообщает, готов ли этот поток к чтению. |
void |
reset() |
Сбрасывает поток. |
void |
unread |
Возвращает массив символов обратно, копируя его в начало буфера возврата. |
void |
unread |
Возвращает часть массива символов обратно, копируя ее в начало буфера возврата. |
void |
unread |
Возвращает один символ обратно, копируя его в начало буфера возврата. |
Методы, объявленные в классе FilterReader
read, skip
Методы, объявленные в классе Reader
nullReader, of, read, read, readAllAsString, readAllLines, transferTo
Подробное описание конструкторов
PushbackReader
public PushbackReader(Reader in, int size)
Создает новый ридер с буфером возврата заданного размера.
- Параметры:
-
in— ридер, из которого будут считываться символы -
size— размер буфера возврата - Исключения:
-
IllegalArgumentException— еслиsize <= 0
PushbackReader
public PushbackReader(Reader in)
Создает новый ридер с буфером возврата размером в один символ.
- Параметры:
-
in— ридер, из которого будут считываться символы
Подробное описание методов
read
public int read() throws IOException
Считывает один символ.
- Переопределяет:
-
readв классеFilterReader - Возвращает:
- Считанный символ или -1, если достигнут конец потока
- Исключения:
-
IOException— если произошла ошибка ввода-вывода
unread
public void unread(int c) throws IOException
Возвращает один символ обратно, копируя его в начало буфера возврата. После завершения этого метода следующим будет считан символ со значением
(char)c.- Параметры:
-
c— значение int, представляющее символ, который нужно вернуть обратно - Исключения:
-
IOException— если буфер возврата заполнен или произошла другая ошибка ввода-вывода
unread
public void unread(char[] cbuf, int off, int len) throws IOException
Возвращает часть массива символов обратно, копируя ее в начало буфера возврата. После завершения этого метода следующим будет считан символ со значением
cbuf[off], за ним — символ со значением cbuf[off+1] и так далее.- Параметры:
-
cbuf— массив символов -
off— смещение первого символа, который нужно вернуть обратно -
len— количество символов, которые нужно вернуть обратно - Исключения:
-
IOException— если в буфере возврата недостаточно места или произошла другая ошибка ввода-вывода
unread
public void unread(char[] cbuf) throws IOException
Возвращает массив символов обратно, копируя его в начало буфера возврата. После завершения этого метода следующим будет считан символ со значением
cbuf[0], за ним — символ со значением cbuf[1] и так далее.- Параметры:
-
cbuf— массив символов, который нужно вернуть обратно - Исключения:
-
IOException— если в буфере возврата недостаточно места или произошла другая ошибка ввода-вывода
ready
public boolean ready() throws IOException
Сообщает, готов ли этот поток к чтению.
- Переопределяет:
-
readyв классеFilterReader - Возвращает:
- true, если гарантируется, что следующий вызов read() не будет блокироваться в ожидании ввода; иначе false. Обратите внимание: возвращаемое значение false не гарантирует, что следующий вызов read будет заблокирован.
- Исключения:
-
IOException— если произошла ошибка ввода-вывода
mark
public void mark(int readAheadLimit) throws IOException
Отмечает текущую позицию в потоке. Метод
mark класса PushbackReader всегда генерирует исключение.- Переопределяет:
-
markв классеFilterReader - Параметры:
-
readAheadLimit— ограничение на количество символов, которые можно считать с сохранением отметки. После считывания этого количества символов попытка сбросить поток может завершиться неудачей. - Исключения:
-
IOException— всегда, поскольку поддержка mark отсутствует
reset
public void reset() throws IOException
Сбрасывает поток. Метод
reset класса PushbackReader всегда генерирует исключение.- Переопределяет:
-
resetв классеFilterReader - Исключения:
-
IOException— всегда, поскольку сброс не поддерживается
markSupported
public boolean markSupported()
Сообщает, поддерживает ли этот поток операцию mark(), которую он не поддерживает.
- Переопределяет:
-
markSupportedв классеFilterReader - Возвращает:
- true тогда и только тогда, когда этот поток поддерживает операцию mark.
close
public void close() throws IOException
Закрывает поток и освобождает все связанные с ним системные ресурсы. После закрытия потока дальнейшие вызовы read(), unread(), ready() или skip() приведут к генерации IOException. Повторное закрытие уже закрытого потока не имеет эффекта. Этот метод будет блокироваться, пока другой поток заблокирован при работе с ридером.
- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Определено в:
-
closeв классеReader - Исключения:
-
IOException— если произошла ошибка ввода-вывода
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/PushbackReader.html