Класс FilterInputStream
- Все реализованные интерфейсы:
-
Closeable,AutoCloseable
- Непосредственные известные подклассы:
-
BufferedInputStream,CheckedInputStream,CipherInputStream,DataInputStream,DeflaterInputStream,DigestInputStream,InflaterInputStream,LineNumberInputStream,ProgressMonitorInputStream,PushbackInputStream
public class FilterInputStream extends InputStream
FilterInputStream оборачивает другой поток ввода, используемый в качестве основного источника данных, возможно, преобразуя данные по ходу или предоставляя дополнительную функциональность. Класс FilterInputStream сам просто переопределяет выбранные методы класса InputStream с версиями, которые передают все запросы в обернутый поток ввода. Подклассы FilterInputStream, конечно, могут переопределять любые объявленные или унаследованные методы от класса FilterInputStream, а также могут предоставлять дополнительные поля и методы.- С:
- 1.0
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected InputStream |
in |
Поток ввода для фильтрации. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает FilterInputStream, присваивая аргумент in полю this.in для запоминания его для последующего использования. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
available() |
Возвращает оценку количества байтов, которые можно прочитать (или пропустить) из этого потока ввода без блокировки следующим вызывающим методом для этого потока ввода. |
void |
close() |
Закрывает этот поток ввода и освобождает все системные ресурсы, связанные с потоком. |
void |
mark |
Помечает текущую позицию в этом потоке ввода. |
boolean |
markSupported() |
Проверяет, поддерживает ли этот поток ввода методы mark и reset. |
int |
read() |
Читает следующий байт данных из потока ввода. |
int |
read |
Читает до b.length байтов данных из этого потока ввода в массив байтов. |
int |
read |
Читает до len байтов данных из этого потока ввода в массив байтов. |
void |
reset() |
Перемещает этот поток в позицию на момент последнего вызова метода mark для этого потока ввода. |
long |
skip |
Пропускает и отбрасывает n байтов данных из потока ввода. |
Методы, объявленные в классе java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
Подробное описание полей
in
protected volatile InputStream in
Подробное описание конструкторов
FilterInputStream
protected FilterInputStream(InputStream in)
FilterInputStream, присваивая аргумент in полю this.in, чтобы запомнить его для последующего использования.- Параметры:
-
in- базовый входной поток илиnull, если этот экземпляр должен быть создан без базового потока.
Подробное описание методов
read
public int read() throws IOException
int в диапазоне от 0 до 255. Если байт недоступен, потому что достигнут конец потока, возвращается значение -1. Этот метод блокируется до тех пор, пока данные ввода не станут доступными, не будет обнаружен конец потока или не будет выброшено исключение.- Указано в:
-
readв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.read()и возвращает результат. - Возвращает:
- следующий байт данных или
-1, если достигнут конец потока. - Бросает:
-
IOException- если произошла ошибка ввода-вывода. - См. также:
read
public int read(byte[] b) throws IOException
b.length байтов данных из этого входного потока в массив байтов. Этот метод блокируется до тех пор, пока не появятся какие-либо данные.- Переопределяет:
-
readв классеInputStream - Требования к реализации:
- Этот метод просто выполняет вызов
read(b, 0, b.length)и возвращает результат. Важно, чтобы он не выполнялin.read(b); некоторые подклассыFilterInputStreamзависят от фактически используемой стратегии реализации. - Параметры:
-
b- буфер, в который считываются данные. - Возвращает:
- общее количество считанных байтов в буфер или
-1, если больше нет данных из-за достижения конца потока. - Бросает:
-
IOException- если произошла ошибка ввода-вывода. - См. также:
read
public int read(byte[] b, int off, int len) throws IOException
len байтов данных из этого входного потока в массив байтов. Если len не равно нулю, метод блокируется до тех пор, пока не появятся какие-либо данные; в противном случае байты не считываются, и возвращается 0.- Переопределяет:
-
readв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.read(b, off, len)и возвращает результат. - Параметры:
-
b- буфер, в который считываются данные. -
off- начальный смещение в массивеb, в котором записываются данные. -
len- максимальное количество байтов для считывания. - Возвращает:
- общее количество считанных байтов в буфер или
-1, если больше нет данных из-за достижения конца потока. - Бросает:
-
NullPointerException- Еслиbравноnull. -
IndexOutOfBoundsException- Еслиoffотрицательно,lenотрицательно илиlenбольшеb.length - off -
IOException- если произошла ошибка ввода-вывода. - См. также:
skip
public long skip(long n) throws IOException
n байтов данных из входного потока. Метод skip может по различным причинам пропустить меньшее количество байтов, возможно, 0. Возвращается фактическое количество пропущенных байтов.- Переопределяет:
-
skipв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.skip(n)и возвращает результат. - Параметры:
-
n- количество байтов, которые нужно пропустить. - Возвращает:
- фактическое количество пропущенных байтов.
- Бросает:
-
IOException- еслиin.skip(n)выбрасывает IOException. - См. также:
available
public int available() throws IOException
- Переопределяет:
-
availableв классеInputStream - Требования к реализации:
- Этот метод возвращает результат
in.available(). - Возвращает:
- оценка количества байтов, которые можно прочитать (или пропустить) из этого входного потока без блокировки.
- Бросает:
-
IOException- если произошла ошибка ввода-вывода.
close
public void close() throws IOException
- Указано в:
-
closeв интерфейсеAutoCloseable - Указано в:
-
closeв интерфейсеCloseable - Переопределяет:
-
closeв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.close(). - Бросает:
-
IOException- если произошла ошибка ввода-вывода. - См. также:
mark
public void mark(int readlimit)
reset перемещает этот поток в последнюю помеченную позицию, так что последующие чтения перечитывают те же байты. Аргумент readlimit сообщает этому входному потоку, что столько байтов можно прочитать, прежде чем позиция метки станет недействительной.
- Переопределяет:
-
markв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.mark(readlimit). - Параметры:
-
readlimit- максимальный лимит байтов, которые можно прочитать, прежде чем позиция метки станет недействительной. - См. также:
reset
public void reset() throws IOException
mark для этого входного потока. Метки потока предназначены для использования в ситуациях, когда вам нужно немного прочитать вперёд, чтобы увидеть, что находится в потоке. Часто это проще всего сделать, вызвав какой-нибудь общий анализатор. Если поток имеет тип, обрабатываемый анализатором, он просто спокойно продвигается вперёд. Если поток не имеет такого типа, анализатор должен выбросить исключение при сбое. Если это происходит в пределах readlimit байтов, это позволяет внешнему коду сбросить поток и попробовать другой анализатор.
- Переопределяет:
-
resetв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.reset(). - Бросает:
-
IOException- если для этого потока не была установлена метка или метка стала недействительной. - См. также:
markSupported
public boolean markSupported()
mark и reset.- Переопределяет:
-
markSupportedв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.markSupported(). - Возвращает:
-
true, если этот тип потока поддерживает методыmarkиreset;falseв противном случае. - См. также:
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/io/FilterInputStream.html