Класс 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 могут дополнительно переопределить некоторые из этих методов и также могут предоставить дополнительные методы и поля.
- С тех пор:
- JDK1.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.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 Читает до byte.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- если поток не поддерживает позиционирование, или если произошла другая ошибка ввода-вывода.
available
public int available()
throws IOException Возвращает оценку количества байтов, которые можно прочитать (или пропустить) из этого потока ввода без блокировки следующим вызывающим методом для этого потока ввода. Следующий вызывающий метод может быть той же нитью или другой нитью. Одновременное чтение или пропускание такого количества байтов не будет заблокировано, но может прочитать или пропустить меньшее количество байтов.
Этот метод возвращает результат in.available().
- Переопределяет:
-
availableв классеInputStream - Возвращает:
- оценка количества байтов, которые можно прочитать (или пропустить) из этого потока ввода без блокировки.
- Имеет исключения:
-
IOException- если произошла ошибка ввода-вывода.
close
public void close()
throws IOException Закрывает этот поток ввода и освобождает любые системные ресурсы, связанные с потоком. Этот метод просто выполняет in.close().
- Определено в:
-
closeв интерфейсеCloseable - Определено в:
-
closeв интерфейсеAutoCloseable - Переопределяет:
-
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.