Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
static InputStream nullInputStream()
Возвращает новый InputStream, который не считывает байты.
byte[] readAllBytes()
Считывает все оставшиеся байты из входного потока.
int readNBytes(byte[] b, int off, int len)
Считывает из входного потока запрошенное количество байтов в указанный массив байтов.
byte[] readNBytes(int len)
Считывает из входного потока до указанного количества байтов.
void skipNBytes(long n)
Пропускает и отбрасывает ровно n байтов данных из этого входного потока.
long transferTo(OutputStream out)
Считывает все байты из этого входного потока и записывает их в указанный выходной поток в порядке считывания.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект некоторому другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ждать, пока он не будет пробужден, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать, пока он не будет пробужден, обычно посредством уведомления или прерывания, либо пока не пройдет заданное время.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать, пока он не будет пробужден, обычно посредством уведомления или прерывания, либо пока не пройдет заданное время.

Подробное описание полей

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, 2026, 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.

Spec-Zone.ru

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