Spec-Zone .ru
спецификации, руководства, описания, API
|
public class FilterInputStream extends InputStream
FilterInputStream
содержит некоторый другой входной поток, который это использует в качестве его основного источника данных, возможно преобразовывая данные по пути или обеспечивая дополнительную функциональность. Класс FilterInputStream
непосредственно просто переопределения все методы InputStream
с версиями, которые передают все запросы к содержавшему входному потоку. Подклассы FilterInputStream
май далее переопределяет некоторые из этих методов и может также обеспечить дополнительные методы и поля.Модификатор и Тип | Поле и Описание |
---|---|
protected InputStream |
в
Входной поток, который будет фильтроваться.
|
Модификатор | Конструктор и Описание |
---|---|
protected |
FilterInputStream(InputStream in)
Создает a
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 байты данных от входного потока. |
protected volatile InputStream in
protected FilterInputStream(InputStream in)
FilterInputStream
присваивая параметр in
к полю this.in
чтобы помнить это для более позднего использования.in
- базовый входной поток, или null
если этот экземпляр должен быть создан без базового потока.public int read() throws IOException
int
в диапазоне 0
к 255
. Если никакой байт не доступен, потому что конец потока был достигнут, значение -1
возвращается. Этот метод блоки до входных данных доступен, конец потока обнаруживается, или исключение выдается. Этот метод просто выполняет in.read()
и возвращает результат.
read
в классе InputStream
-1
если конец потока достигается.IOException
- если ошибка ввода-вывода происходит.in
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)
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
public long skip(long n) throws IOException
n
байты данных от входного потока. skip
метод, для множества причин, может закончить тем, что перескочил через некоторое меньшее число байтов, возможно 0
. Фактическое число пропущенных байтов возвращается. Этот метод просто выполняет in.skip(n)
.
skip
в классе InputStream
n
- число байтов, которые будут пропущены.IOException
- если поток не поддерживает, ищут, или если некоторая другая ошибка ввода-вывода происходит.public int available() throws IOException
Этот метод возвращает результат in
.available ().
available
в классе InputStream
IOException
- если ошибка ввода-вывода происходит.public void close() throws IOException
in.close()
.close
в интерфейсе Closeable
close
в интерфейсе AutoCloseable
close
в классе InputStream
IOException
- если ошибка ввода-вывода происходит.in
public void mark(int readlimit)
reset
репозиции метода этот поток в последней отмеченной позиции так, чтобы последующие чтения, перечитанные те же самые байты. readlimit
параметр говорит этому входному потоку признавать, что много байтов, которые будут считаны перед позицией метки, лишаются законной силы.
Этот метод просто выполняет in.mark(readlimit)
.
mark
в классе InputStream
readlimit
- максимальный предел байтов, которые могут быть считаны перед позицией метки, становится недопустимым.in
, reset()
public void reset() throws IOException
mark
метод был последним, обращался к этому входному потоку. Этот метод просто выполняет in.reset()
.
Потоковые метки предназначаются, чтобы использоваться в ситуациях, где Вы должны читать вперед немного, чтобы видеть то, что находится в потоке. Часто это наиболее легко делается, вызывая некоторый общий синтаксический анализатор. Если поток имеет тип, обработанный синтаксическим анализом, это только двигается с пыхтением вперед счастливо. Если поток не имеет того типа, синтаксический анализатор должен бросить исключение, когда это перестало работать. Если это происходит в пределах readlimit байтов, это позволяет внешнему коду сбрасывать поток и пробовать другой синтаксический анализатор.
reset
в классе InputStream
IOException
- если поток не был отмечен или если метка была лишена законной силы.in
, mark(int)
public boolean markSupported()
mark
и reset
методы. Этот метод просто выполняет in.markSupported()
.markSupported
в классе InputStream
true
если этот потоковый тип поддерживает mark
и reset
метод; false
иначе.in
, InputStream.mark(int)
, InputStream.reset()
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.