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