Класс PushbackInputStream
- Все реализуемые интерфейсы:
-
Closeable,AutoCloseable
public class PushbackInputStream extends FilterInputStream
- С:
- 1.0
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected byte[] |
buf |
Буфер возврата. |
protected int |
pos |
Позиция в буфере возврата, с которой будет считан следующий байт. |
Поля, объявленные в классе java.io.FilterInputStream
in
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
PushbackInputStream |
Создаёт PushbackInputStream с буфером возврата размером 1 байт и сохраняет его аргумент, поток ввода in, для последующего использования. |
PushbackInputStream |
Создаёт PushbackInputStream с буфером возврата заданного размера и сохраняет его аргумент, поток ввода in, для последующего использования. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
available() |
Возвращает оценку количества байтов, которые могут быть прочитаны (или пропущены) из этого потока ввода без блокирования до следующего вызова метода для этого потока ввода. |
void |
close() |
Закрывает этот поток ввода и освобождает любые системные ресурсы, связанные с потоком. |
void |
mark |
Помечает текущую позицию в этом потоке ввода. |
boolean |
markSupported() |
Проверяет, поддерживает ли этот поток ввода методы mark и reset, которых он не поддерживает. |
int |
read() |
Считывает следующий байт данных из этого потока ввода. |
int |
read |
Считывает до len байтов данных из этого потока ввода в массив байтов. |
void |
reset() |
Перемещает этот поток к позиции на момент последнего вызова метода mark для этого потока ввода. |
long |
skip |
Пропускает и отбрасывает n байтов данных из этого потока ввода. |
void |
unread |
Возвращает массив байтов, копируя его в начало буфера возврата. |
void |
unread |
Возвращает часть массива байтов, копируя её в начало буфера возврата. |
void |
unread |
Возвращает байт, копируя его в начало буфера возврата. |
Методы, объявленные в классе java.io.FilterInputStream
read
Методы, объявленные в классе java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
Подробное описание полей
buf
protected byte[] buf
- Since:
- 1.1
pos
protected int pos
pos равно buf.length; когда буфер заполнен, pos равно нулю.- Since:
- 1.1
Подробное описание конструкторов
PushbackInputStream
public PushbackInputStream(InputStream in, int size)
PushbackInputStream с буфером отката заданного size, и сохраняет свой аргумент, поток ввода in, для последующего использования. Изначально буфер отката пустой.- Parameters:
-
in- поток ввода, из которого будут считываться байты. -
size- размер буфера отката. - Throws:
-
IllegalArgumentException- еслиsize <= 0 - Since:
- 1.1
PushbackInputStream
public PushbackInputStream(InputStream in)
PushbackInputStream с буфером отката размером 1 байт, и сохраняет свой аргумент, поток ввода in, для последующего использования. Изначально буфер отката пустой.- Parameters:
-
in- поток ввода, из которого будут считываться байты.
Подробное описание методов
read
public int read() throws IOException
int в диапазоне 0 до 255. Если байт недоступен, потому что достигнут конец потока, возвращается значение -1. Этот метод блокируется до тех пор, пока данные ввода не станут доступными, не будет обнаружен конец потока или не будет брошено исключение. Этот метод возвращает наиболее недавно отложенный байт, если он есть, и в противном случае вызывает метод read своего базового потока ввода и возвращает то же значение, что и этот метод.
- Overrides:
-
readв классеFilterInputStream - Returns:
- следующий байт данных или
-1если достигнут конец потока. - Throws:
-
IOException- если этот поток ввода был закрыт путём вызова его методаclose()или произошла ошибка ввода-вывода. - See Also:
read
public int read(byte[] b, int off, int len) throws IOException
len байтов данных из этого потока ввода в массив байтов. Этот метод сначала считывает любые отложенные байты; после этого, если прочитано меньше, чем len байтов, он считывает из базового потока ввода. Если len не равно нулю, метод блокируется до тех пор, пока не станет доступен как минимум 1 байт ввода; в противном случае байты не считываются и возвращается 0. - Overrides:
-
readв классеFilterInputStream - Parameters:
-
b- буфер, в который считываются данные. -
off- начальный смещение в целевом массивеb -
len- максимальное количество считываемых байтов. - Returns:
- общее количество байтов, считанных в буфер, или
-1если больше нет данных, потому что достигнут конец потока. - Throws:
-
NullPointerException- Еслиbравноnull. -
IndexOutOfBoundsException- Еслиoffотрицательно,lenотрицательно илиlenбольше, чемb.length - off -
IOException- если этот поток ввода был закрыт вызовом его методаclose()или произошла ошибка ввода-вывода. - See Also:
unread
public void unread(int b) throws IOException
(byte)b. - Parameters:
-
b- значениеint, чей младший байт нужно вернуть. - Throws:
-
IOException- Если в буфере отката недостаточно места для байта или этот поток ввода был закрыт путём вызова его методаclose().
unread
public void unread(byte[] b, int off, int len) throws IOException
b[off], байт после него будет иметь значение b[off+1], и так далее.- Parameters:
-
b- массив байтов для возврата. -
off- начальный смещение данных. -
len- количество байтов для возврата. - Throws:
-
NullPointerException- Еслиbравноnull. -
IOException- Если в буфере отката недостаточно места для указанного количества байтов или этот поток ввода был закрыт вызовом методаclose(). - Since:
- 1.1
unread
public void unread(byte[] b) throws IOException
b[0], байт после него будет иметь значение b[1], и так далее.- Parameters:
-
b- массив байтов для возврата - Throws:
-
NullPointerException- Еслиbравноnull. -
IOException- Если в буфере отката недостаточно места для указанного количества байтов или этот поток ввода был закрыт вызовом методаclose(). - Since:
- 1.1
available
public int available() throws IOException
Метод возвращает сумму количества байтов, которые были возвращены в буфер отката, и значение, возвращённое методом available.
- Overrides:
-
availableв классеFilterInputStream - Returns:
- количество байтов, которые можно прочитать (или пропустить) из потока ввода без блокировки.
- Throws:
-
IOException- если этот поток ввода был закрыт вызовом методаclose()или произошла ошибка ввода-вывода. - See Also:
skip
public long skip(long n) throws IOException
n байтов данных из этого потока ввода. Метод skip может по различным причинам пропустить меньшее количество байтов, возможно ноль. Если n отрицательно, байты не пропускаются. Метод skip класса PushbackInputStream сначала пропускает байты в буфере отката, если таковые имеются. Затем он вызывает метод skip базового потока ввода, если нужно пропустить больше байтов. Возвращается фактическое количество пропущенных байтов.
- Overrides:
-
skipв классеFilterInputStream - Parameters:
-
n- количество байтов для пропуска. - Returns:
- фактическое количество пропущенных байтов.
- Throws:
-
IOException- если поток закрыт вызовом методаclose(),in.skip(n)выбрасывает IOException или произошла ошибка ввода-вывода. - Since:
- 1.2
- See Also:
markSupported
public boolean markSupported()
mark и reset, чего он не делает.- Overrides:
-
markSupportedв классеFilterInputStream - Returns:
-
false, так как этот класс не поддерживает методыmarkиreset. - See Also:
mark
public void mark(int readlimit)
Метод mark класса PushbackInputStream ничего не делает.
- Overrides:
-
markв классеFilterInputStream - Parameters:
-
readlimit- максимальное ограничение байтов, которые могут быть прочитаны, прежде чем метка позиции станет недействительной. - See Also:
reset
public void reset() throws IOException
mark для этого потока ввода. Метод reset для класса PushbackInputStream ничего не делает, кроме как выбросить IOException.
- Переопределяет:
-
resetв классеFilterInputStream - Выбрасывает:
-
IOException- если этот метод вызван. - См. также:
close
public void close() throws IOException
- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Переопределяет:
-
closeв классеFilterInputStream - Выбрасывает:
-
IOException- если произошла ошибка ввода/вывода. - См. также:
© 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/PushbackInputStream.html