Класс 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)

Создаёт FilterInputStream путём присвоения аргумента in полю this.in, чтобы запомнить его для последующего использования.

Методы

Модификатор и тип Метод Описание
int available()

Возвращает оценку числа байтов, которые могут быть прочитаны (или пропущены) из этого потока ввода без блокировки следующим вызывающим методом для этого потока ввода.

void close()

Закрывает этот поток ввода и освобождает все системные ресурсы, связанные с потоком.

void mark​(int readlimit)

Помечает текущую позицию в этом потоке ввода.

boolean markSupported()

Проверяет, поддерживает ли этот поток ввода методы mark и reset.

int read()

Читает следующий байт данных из этого потока ввода.

int read​(byte[] b)

Читает до b.length байтов данных из этого потока ввода в массив байтов.

int read​(byte[] b, int off, int len)

Читает до len байтов данных из этого потока ввода в массив байтов.

void reset()

Перемещает этот поток в позицию на момент последнего вызова метода mark для этого потока ввода.

long skip​(long n)

Пропускает и отбрасывает 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

Spec-Zone .ru
спецификации, руководства, описания, API