Spec-Zone.ru › OpenJDK 25

Класс 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 могут, разумеется, переопределять любые методы, объявленные или унаследованные от FilterInputStream, а также предоставлять дополнительные поля и методы.
Начиная с:
1.0

Краткое описание полей

Модификатор и тип Поле Описание
protected InputStream in
Входной поток, подлежащий фильтрации.

Краткое описание конструкторов

FilterInputStream(InputStream in)
Модификатор Конструктор Описание
protected
Создаёт 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 байтов данных из входного потока.

Методы, объявленные в классе InputStream

nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

Методы, объявленные в классе 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. Этот метод блокирует выполнение до тех пор, пока входные данные не станут доступны, не будет обнаружен конец потока или не будет выброшено исключение.
Определён в:
read в классе InputStream
Требования к реализации:
Этот метод просто выполняет in.read() и возвращает результат.
Возвращает:
следующий байт данных или -1, если достигнут конец потока.
Выбрасывает:
IOException — если произошла ошибка ввода-вывода.
См. также:
  • in

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(byte[], int, int)

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 — если произошла ошибка ввода-вывода.
См. также:
  • in

skip

public long skip(long n) throws IOException
Пропускает и отбрасывает n байтов данных из входного потока. По разным причинам метод skip может пропустить меньшее количество байтов, возможно, 0. Возвращается фактическое количество пропущенных байтов.
Переопределяет:
skip в классе InputStream
Требования к реализации:
Этот метод просто выполняет in.skip(n) и возвращает результат.
Параметры:
n — количество байтов для пропуска.
Возвращает:
фактическое количество пропущенных байтов.
Выбрасывает:
IOException — если in.skip(n) выбрасывает IOException.
См. также:
  • InputStream.skipNBytes(long)

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 — если произошла ошибка ввода-вывода.
См. также:
  • in

mark

public void mark(int readlimit)
Устанавливает отметку на текущей позиции в этом входном потоке. Последующий вызов метода reset перемещает этот поток к последней отмеченной позиции, чтобы последующие операции чтения повторно считывали те же байты.

Аргумент readlimit указывает этому входному потоку, сколько байтов можно прочитать до того, как отметка станет недействительной.

Переопределяет:
mark в классе InputStream
Требования к реализации:
Этот метод просто выполняет in.mark(readlimit).
Параметры:
readlimit — максимальное количество байтов, которое можно прочитать до того, как отметка станет недействительной.
См. также:
  • in
  • reset()

reset

public void reset() throws IOException
Перемещает этот поток на позицию, которая была текущей в момент последнего вызова метода mark для этого входного потока.

Отметки потоков предназначены для ситуаций, когда нужно немного прочитать данные вперёд, чтобы определить содержимое потока. Часто проще всего сделать это, вызвав универсальный анализатор. Если поток имеет тип, который обрабатывает анализатор, он просто продолжает работу. Если поток имеет другой тип, анализатор должен выбросить исключение при ошибке. Если это происходит в пределах readlimit байтов, внешний код может сбросить поток и попробовать другой анализатор.

Переопределяет:
reset в классе InputStream
Требования к реализации:
Этот метод просто выполняет in.reset().
Выбрасывает:
IOException — если для этого потока не была установлена отметка или если отметка стала недействительной.
См. также:
  • in
  • mark(int)

markSupported

public boolean markSupported()
Проверяет, поддерживает ли этот входной поток методы mark и reset.
Переопределяет:
markSupported в классе InputStream
Требования к реализации:
Этот метод просто выполняет in.markSupported().
Возвращает:
true, если этот тип потока поддерживает методы mark и reset; в противном случае — false.
См. также:
  • in
  • InputStream.mark(int)
  • InputStream.reset()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/FilterInputStream.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API