|
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 работа потребует, чтобы больше байтов было считано из содержавшего входного потока.
bufprotected 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.inpublic int read(byte[] b,
int off,
int len)
throws IOException
Этот метод реализует общий контракт соответствия метод read class. Как дополнительное удобство, это пытается считать так много байтов насколько возможно, неоднократно вызывая InputStreamread метод базового потока. Это выполнило итерации read продолжается, пока одно из следующих условий не становится истиной:
read метод базовых потоковых возвратов -1, указание на конец файла, или available метод базового потока возвращает нуль, указывая, что далее входные запросы блокировали бы. read по базовым потоковым возвратам -1 указать на конец файла тогда этот метод возвраты -1. Иначе этот метод возвращает число байтов фактически чтение. Подклассы этого class поощряются, но не требуются, чтобы попытаться считать так много байтов насколько возможно тем же самым способом.
read в class FilterInputStreamb - целевой буфер.off - смещение, при котором можно начать хранить байты.len - максимальное количество байтов, чтобы читать.-1 если конец потока был достигнут.IOException - если этот входной поток был закрыт, вызывая close() метод, или ошибка ввода-вывода происходит.FilterInputStream.inpublic long skip(long n)
throws IOException
skip метод InputStream.skip в class FilterInputStreamn - число байтов, которые будут пропущены.IOException - если поток не поддерживает, ищут, или если этот входной поток был закрыт, вызывая close() метод, или ошибка ввода-вывода происходит.public int available()
throws IOException
Этот метод возвращает сумму числа байтов, остающихся быть считанными в буфере (count - pos) и результат вызова in.available ().
available в class FilterInputStreamIOException - если этот входной поток был закрыт, вызывая close() метод, или ошибка ввода-вывода происходит.public void mark(int readlimit)
mark метод InputStream.mark в class FilterInputStreamreadlimit - максимальный предел байтов, которые могут быть считаны перед позицией метки, становится недопустимым.reset()public void reset()
throws IOException
reset метод InputStream. Если markpos -1 (никакая метка не была установлена, или метка была лишена законной силы), IOException бросается. Иначе, pos устанавливается равный markpos.
reset в class FilterInputStreamIOException - если этот поток не был отмечен или, если метка была лишена законной силы, или поток был закрыт, вызывая close() метод, или ошибка ввода-вывода происходит.mark(int)public boolean markSupported()
mark и reset методы. markSupported метод BufferedInputStream возвраты true.markSupported в class FilterInputStreamboolean указание, поддерживает ли этот потоковый тип mark и reset методы.InputStream.mark(int), InputStream.reset()public void close()
throws IOException
close в интерфейсе Closeableclose в интерфейсе AutoCloseableclose в class FilterInputStreamIOException - если ошибка ввода-вывода происходит.FilterInputStream.in
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92