Spec-Zone.ru › OpenJDK 8

Класс BufferedInputStream

  • java.lang.Object
    • java.io.InputStream
      • java.io.FilterInputStream
        • java.io.BufferedInputStream
Все реализованные интерфейсы:
Closeable, AutoCloseable

public class BufferedInputStream
extends FilterInputStream

Класс BufferedInputStream добавляет функциональность к другому потоку ввода—именно, возможность буферизации ввода и поддержку методов mark и reset. При создании объекта BufferedInputStream, создается внутренний массив буфера. По мере чтения или пропуска байтов из потока, внутренний буфер заполняется по мере необходимости из содержащегося потока ввода, по много байтов за раз. Операция mark запоминает точку в потоке ввода, а операция reset заставляет все байты, прочитанные с момента последней операции mark, быть перечитаны перед тем, как новые байты будут взяты из содержащегося потока ввода.

С:
JDK1.0

Поля

Модификатор и тип Поле и описание
protected byte[] buf

Внутренний массив буфера, где хранятся данные.

protected int count

Индекс, на единицу больший, чем индекс последнего допустимого байта в буфере.

protected int marklimit

Максимальный предзагруз (read ahead) разрешенный после вызова метода mark перед последующим вызовом метода reset.

protected int markpos

Значение поля pos в момент вызова последнего метода mark.

protected int pos

Текущая позиция в буфере.

Поля, унаследованные от класса java.io.FilterInputStream

in

Конструкторы

Конструктор и описание
BufferedInputStream(InputStream in)

Создаёт BufferedInputStream и сохраняет свой аргумент, поток ввода in, для последующего использования.

BufferedInputStream(InputStream in, int size)

Создаёт 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.

Методы, унаследованные от класса java.io.FilterInputStream

read

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

buf

protected volatile byte[] buf

Внутренний буферный массив, где хранятся данные. При необходимости он может быть заменён другим массивом другого размера.

count

protected int count

Индекс, на единицу больший, чем индекс последнего допустимого байта в буфере. Это значение всегда находится в диапазоне 0 по buf.length; элементы buf[0] по buf[count-1] содержат данные буферизованного ввода, полученные из базового потока ввода.

pos

protected int pos

Текущая позиция в буфере. Это индекс следующего символа, который должен быть прочитан из массива buf.

Это значение всегда находится в диапазоне 0 по count. Если оно меньше count, то buf[pos] — следующий байт, который должен быть предоставлен в качестве ввода; если оно равно count, то для следующей операции read или skip потребуется прочитать больше байтов из содержащегося потока ввода.

См. также:
buf

markpos

protected int markpos

Значение поля pos на момент вызова последнего метода mark.

Это значение всегда находится в диапазоне -1 по pos. Если в потоке ввода нет помеченной позиции, это поле равно -1. Если в потоке ввода есть помеченная позиция, то buf[markpos] — первый байт, который будет предоставлен в качестве ввода после операции reset. Если markpos не равно -1, то все байты с позиций buf[markpos] по buf[pos-1] должны оставаться в массиве буфера (хотя они могут быть перемещены в другое место в массиве буфера с соответствующими корректировками значений count, pos, и markpos); они не могут быть удалены, пока и до тех пор, пока разность между pos и markpos не превысит marklimit.

См. также:
mark(int), pos

marklimit

protected int marklimit

Максимальное значение предварительного чтения, разрешённого после вызова метода mark перед последующим вызовом метода reset, которое приведет к ошибке. Всякий раз, когда разница между pos и markpos превышает marklimit, метка может быть удалена путём установки markpos в значение -1.

См. также:
mark(int), reset()

Конструкторы

BufferedInputStream

public BufferedInputStream(InputStream in)

Создаёт BufferedInputStream и сохраняет свой аргумент, поток ввода in, для последующего использования. Внутренний буферный массив создаётся и хранится в buf.

Параметры:
in - базовый поток ввода.

BufferedInputStream

public BufferedInputStream(InputStream in,
                           int size)

Создаёт BufferedInputStream с указанным размером буфера и сохраняет свой аргумент, поток ввода in, для последующего использования. Внутренний буферный массив длиной size создаётся и хранится в buf.

Параметры:
in - базовый поток ввода.
size - размер буфера.
Исключения:
IllegalArgumentException - если size <= 0.

Методы

read

public int read()
         throws IOException

См. общий контракт метода read класса InputStream.

Переопределяет:
read в классе FilterInputStream
Возвращает:
следующий байт данных или -1, если достигнут конец потока.
Исключения:
IOException - если этот поток ввода был закрыт путём вызова его метода close() или произошла ошибка ввода-вывода.
См. также:
FilterInputStream.in

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException

Считывает байты из этого потока ввода байтов в указанный массив байтов, начиная с заданного смещения.

Этот метод реализует общий контракт соответствующего метода read класса InputStream. В качестве дополнительного удобства он пытается прочитать как можно больше байтов, многократно вызывая метод read базового потока. Эта итерация read продолжается до тех пор, пока не станет истинным одно из следующих условий:

  • Было прочитано указанное количество байтов,
  • Метод read базового потока возвращает -1, указывая конец файла, или
  • Метод available базового потока возвращает ноль, указывая, что дальнейшие запросы ввода заблокируются.
Если первый read в базовом потоке возвращает -1 для указания конца файла, то этот метод возвращает -1. В противном случае этот метод возвращает количество фактически прочитанных байтов.

Подклассы этого класса рекомендуются, но не требуются, для попыток чтения как можно большего количества байтов аналогичным образом.

Переопределяет:
read в классе FilterInputStream
Параметры:
b - буфер назначения.
off - смещение, с которого начинать хранение байтов.
len - максимальное количество байтов для чтения.
Возвращает:
количество прочитанных байтов или -1, если достигнут конец потока.
Исключения:
IOException - если этот поток ввода был закрыт путём вызова его метода close() или произошла ошибка ввода-вывода.
См. также:
FilterInputStream.in

skip

public long skip(long n)
          throws IOException

См. общий контракт метода skip класса InputStream.

Переопределяет:
skip в классе FilterInputStream
Параметры:
n - количество байтов, которые нужно пропустить.
Возвращает:
фактическое количество пропущенных байтов.
Исключения:
IOException - если поток не поддерживает поиск, или если этот поток ввода был закрыт путём вызова его метода close(), или произошла ошибка ввода-вывода.

available

public int available()
              throws IOException

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

Этот метод возвращает сумму количества байтов, оставшихся для чтения в буфере (count - pos) и результата вызова in.available().

Переопределяет:
available в классе FilterInputStream
Возвращает:
оценка количества байтов, которые можно прочитать (или пропустить) из этого потока ввода без блокировки.
Исключения:
IOException - если этот поток ввода был закрыт путём вызова его метода close() или произошла ошибка ввода-вывода.

mark

public void mark(int readlimit)

См. общий контракт метода mark класса InputStream.

Переопределяет:
mark в классе FilterInputStream
Параметры:
readlimit - максимальный предел байтов, которые можно прочитать, прежде чем позиция метки станет недопустимой.
См. также:
reset()

reset

public void reset()
           throws IOException

См. общий контракт метода reset класса InputStream.

Если markpos равен -1 (метка не была установлена или была сделана недействительной), выбрасывается IOException. В противном случае pos устанавливается равным markpos.

Переопределяет:
reset в классе FilterInputStream
Исключения:
IOException - если поток не был помечен или, если метка была сделана недействительной, или поток был закрыт путём вызова его метода close() или произошла ошибка ввода-вывода.
См. также:
mark(int)

markSupported

public boolean markSupported()

Проверяет, поддерживает ли этот поток ввода методы mark и reset. Метод markSupported класса BufferedInputStream возвращает true.

Переопределяет:
markSupported в классе FilterInputStream
Возвращает:
значение boolean, указывающее, поддерживает ли этот тип потока методы mark и reset.
См. также:
InputStream.mark(int), InputStream.reset()

close

public void close()
           throws IOException

Закрывает этот поток ввода и освобождает любые системные ресурсы, связанные с потоком. После закрытия потока дальнейшие вызовы read(), available(), reset() или skip() будут выбрасывать IOException. Закрытие уже закрытого потока не оказывает никакого эффекта.

Определяет:
close в интерфейсе Closeable
Определяет:
close в интерфейсе AutoCloseable
Переопределяет:
close в классе FilterInputStream
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
FilterInputStream.in

© 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