Класс 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 |
Входной поток, подлежащий фильтрации. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает FilterInputStream, присваивая аргумент in полю this.in, чтобы сохранить его для дальнейшего использования. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
available() |
Возвращает оценку количества байтов, которые следующий вызов метода для этого входного потока может прочитать (или пропустить), не блокируясь. |
void |
close() |
Закрывает этот входной поток и освобождает все системные ресурсы, связанные с ним. |
void |
mark |
Помечает текущую позицию в этом входном потоке. |
boolean |
markSupported() |
Проверяет, поддерживает ли этот входной поток методы mark и reset. |
int |
read() |
Считывает следующий байт данных из входного потока. |
int |
read |
Считывает из этого входного потока до b.length байтов данных в массив байтов. |
int |
read |
Считывает из этого входного потока до len байтов данных в массив байтов. |
void |
reset() |
Перемещает этот поток к позиции, на которой он находился при последнем вызове метода mark для этого входного потока. |
long |
skip |
Пропускает и отбрасывает n байтов данных из входного потока. |
Методы, объявленные в классе InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo | Модификатор и тип | Метод | Описание |
|---|---|---|
static InputStream |
nullInputStream() |
Возвращает новый InputStream, который не считывает байты. |
byte[] |
readAllBytes() |
Считывает все оставшиеся байты из входного потока. |
int |
readNBytes |
Считывает из входного потока запрошенное количество байтов в указанный массив байтов. |
byte[] |
readNBytes |
Считывает из входного потока до указанного количества байтов. |
void |
skipNBytes |
Пропускает и отбрасывает ровно n байтов данных из этого входного потока. |
long |
transferTo |
Считывает все байты из этого входного потока и записывает их в указанный выходной поток в порядке считывания. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект некоторому другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ждать, пока он не будет пробужден, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ждать, пока он не будет пробужден, обычно посредством уведомления или прерывания, либо пока не пройдет заданное время. |
final void |
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— если произошла ошибка ввода-вывода. - См. также:
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
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— если произошла ошибка ввода-вывода. - См. также:
skip
public long skip(long n) throws IOException
n байтов данных из входного потока. По разным причинам метод skip может пропустить меньшее количество байтов, возможно 0. Возвращается фактическое количество пропущенных байтов.- Переопределяет:
-
skipв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.skip(n)и возвращает результат. - Параметры:
-
n— количество байтов, которые необходимо пропустить. - Возвращает:
- фактическое количество пропущенных байтов.
- Выбрасывает:
-
IOException— еслиin.skip(n)выбрасывает IOException. - См. также:
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— если произошла ошибка ввода-вывода. - См. также:
mark
public void mark(int readlimit)
reset перемещает этот поток к последней помеченной позиции, чтобы при последующих считываниях повторно считывались те же байты. Аргумент readlimit указывает входному потоку, сколько байтов разрешено считать до того, как пометка станет недействительной.
- Переопределяет:
-
markв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.mark(readlimit). - Параметры:
-
readlimit— максимальное количество байтов, которое можно считать до того, как помеченная позиция станет недействительной. - См. также:
reset
public void reset() throws IOException
mark для этого входного потока. Пометки потока предназначены для ситуаций, когда нужно немного прочитать данные заранее, чтобы узнать, что содержится в потоке. Часто проще всего сделать это с помощью универсального анализатора. Если поток имеет тип, обрабатываемый анализатором, он просто продолжает работу. Если поток имеет другой тип, анализатор должен выбросить исключение при сбое. Если это происходит в пределах readlimit байтов, внешний код может сбросить поток и попробовать другой анализатор.
- Переопределяет:
-
resetв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.reset(). - Выбрасывает:
-
IOException— если для этого потока не установлена пометка или она стала недействительной. - См. также:
markSupported
public boolean markSupported()
mark и reset.- Переопределяет:
-
markSupportedв классеInputStream - Требования к реализации:
- Этот метод просто выполняет
in.markSupported(). - Возвращает:
-
true, если этот тип потока поддерживает методыmarkиreset; в противном случае —false. - См. также:
© 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.