Spec-Zone.ru › OpenJDK 8

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

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

Методы

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

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

void close()

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

void mark(int readlimit)

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

boolean markSupported()

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

int read()

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

int read(byte[] b)

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

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

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

void reset()

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

long skip(long n)

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

Spec-Zone.ru

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