Spec-Zone .ru
спецификации, руководства, описания, API
|
public class BufferedInputStream extends FilterInputStream
BufferedInputStream
добавляет функциональность к другому входному потоку а именно, возможность буферизовать ввод и поддерживать mark
и reset
методы. Когда BufferedInputStream
создается, внутренний буферный массив создается. Поскольку байты от потока читаются или пропускаются, внутренний буфер снова наполняется по мере необходимости от содержавшего входного потока, много байтов за один раз. mark
работа помнит точку во входном потоке и reset
работа вызывает все чтение байтов начиная с нового mark
работа, которая будет перечитана перед новыми байтами, берется от содержавшего входного потока.Модификатор и Тип | Поле и Описание |
---|---|
protected byte[] |
buf
Внутренний буферный массив, где данные хранятся.
|
protected int |
количество
Индексирование одного большего чем индексирование последнего допустимого байта в буфере.
|
protected int |
marklimit
Максимальное чтение, вперед позволенное после звонка
mark метод перед последующими звонками reset сбой метода. |
protected int |
markpos
Значение
pos поле в это время последнее mark метод вызвали. |
protected int |
на месте продажи
Текущая позиция в буфере.
|
в
Конструктор и Описание |
---|
BufferedInputStream(InputStream in)
Создает a
BufferedInputStream и сохраняет его параметр, входной поток in , для более позднего использования. |
BufferedInputStream(InputStream in, int size)
Создает a
BufferedInputStream с указанным размером буфера, и сохраняет его параметр, входной поток in , для более позднего использования. |
Модификатор и Тип | Метод и Описание |
---|---|
int |
available()
Возвращает оценку числа байтов, которые могут быть считаны (или перескочиться) от этого входного потока, не блокируя следующим вызовом метода для этого входного потока.
|
void |
close()
Завершения этот входной поток и выпуски любые системные ресурсы связались с потоком.
|
void |
mark(int readlimit)
См. общий контракт
mark метод InputStream . |
boolean |
markSupported()
Тесты, если этот входной поток поддерживает
mark и reset методы. |
int |
read()
См. общий контракт
read метод InputStream . |
int |
read(byte[] b, int off, int len)
Байты чтений от этого введенного байтом потока в указанный байтовый массив, запускающийся при данном смещении.
|
void |
reset()
См. общий контракт
reset метод InputStream . |
long |
skip(long n)
См. общий контракт
skip метод InputStream . |
читать
protected volatile byte[] buf
protected int count
0
через buf.length
; элементы buf[0]
через buf[count-1]
содержите буферизованные входные данные, полученные из базового входного потока.protected int pos
buf
массив. Это значение всегда находится в диапазоне 0
через count
. Если это - меньше чем count
, тогда buf[pos]
следующий байт, который будет предоставлен как входной; если это равно count
, тогда следующее read
или skip
работа потребует, чтобы больше байтов было считано из содержавшего входного потока.
buf
protected int markpos
pos
поле в это время последнее mark
метод вызвали. Это значение всегда находится в диапазоне -1
через pos
. Если нет никакой отмеченной позиции во входном потоке, это поле -1
. Если есть отмеченная позиция во входном потоке, то buf[markpos]
первый байт, который будет предоставлен как входной после a reset
работа. Если markpos
не -1
, тогда все байты от позиций buf[markpos]
через buf[pos-1]
должен остаться в буферном массиве (хотя они могут быть перемещены в другое место в буферном массиве с подходящими корректировками значений count
, pos
, и markpos
); они не могут быть отброшены только после того как различие между pos
и markpos
превышает marklimit
.
protected int marklimit
mark
метод перед последующими звонками reset
сбой метода. Всякий раз, когда различие между pos
и markpos
превышает marklimit
, тогда метка может быть отброшена, устанавливая markpos
к -1
.public BufferedInputStream(InputStream in)
BufferedInputStream
и сохраняет его параметр, входной поток in
, для более позднего использования. Внутренний буферный массив создается и сохранен в buf
.in
- базовый входной поток.public BufferedInputStream(InputStream in, int size)
BufferedInputStream
с указанным размером буфера, и сохраняет его параметр, входной поток in
, для более позднего использования. Внутренний буферный массив длины size
создается и сохранен в buf
.in
- базовый входной поток.size
- размер буфера.IllegalArgumentException
- если размер <= 0.public int read() throws IOException
read
метод InputStream
.read
в class FilterInputStream
-1
если конец потока достигается.IOException
- если этот входной поток был закрыт, вызывая close()
метод, или ошибка ввода-вывода происходит.FilterInputStream.in
public int read(byte[] b, int off, int len) throws IOException
Этот метод реализует общий контракт соответствия
метод read
class. Как дополнительное удобство, это пытается считать так много байтов насколько возможно, неоднократно вызывая InputStream
read
метод базового потока. Это выполнило итерации read
продолжается, пока одно из следующих условий не становится истиной:
read
метод базовых потоковых возвратов -1
, указание на конец файла, или available
метод базового потока возвращает нуль, указывая, что далее входные запросы блокировали бы. read
по базовым потоковым возвратам -1
указать на конец файла тогда этот метод возвраты -1
. Иначе этот метод возвращает число байтов фактически чтение. Подклассы этого class поощряются, но не требуются, чтобы попытаться считать так много байтов насколько возможно тем же самым способом.
read
в class FilterInputStream
b
- целевой буфер.off
- смещение, при котором можно начать хранить байты.len
- максимальное количество байтов, чтобы читать.-1
если конец потока был достигнут.IOException
- если этот входной поток был закрыт, вызывая close()
метод, или ошибка ввода-вывода происходит.FilterInputStream.in
public long skip(long n) throws IOException
skip
метод InputStream
.skip
в class FilterInputStream
n
- число байтов, которые будут пропущены.IOException
- если поток не поддерживает, ищут, или если этот входной поток был закрыт, вызывая close()
метод, или ошибка ввода-вывода происходит.public int available() throws IOException
Этот метод возвращает сумму числа байтов, остающихся быть считанными в буфере (count - pos
) и результат вызова in
.available ().
available
в class FilterInputStream
IOException
- если этот входной поток был закрыт, вызывая close()
метод, или ошибка ввода-вывода происходит.public void mark(int readlimit)
mark
метод InputStream
.mark
в class FilterInputStream
readlimit
- максимальный предел байтов, которые могут быть считаны перед позицией метки, становится недопустимым.reset()
public void reset() throws IOException
reset
метод InputStream
. Если markpos
-1
(никакая метка не была установлена, или метка была лишена законной силы), IOException
бросается. Иначе, pos
устанавливается равный markpos
.
reset
в class FilterInputStream
IOException
- если этот поток не был отмечен или, если метка была лишена законной силы, или поток был закрыт, вызывая close()
метод, или ошибка ввода-вывода происходит.mark(int)
public boolean markSupported()
mark
и reset
методы. markSupported
метод BufferedInputStream
возвраты true
.markSupported
в class FilterInputStream
boolean
указание, поддерживает ли этот потоковый тип mark
и reset
методы.InputStream.mark(int)
, InputStream.reset()
public void close() throws IOException
close
в интерфейсе Closeable
close
в интерфейсе AutoCloseable
close
в class FilterInputStream
IOException
- если ошибка ввода-вывода происходит.FilterInputStream.in
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92