Spec-Zone.ru › OpenJDK 17

Класс BufferedInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.io.BufferedInputStream
Все реализованные интерфейсы:
Closeable, AutoCloseable
public class BufferedInputStream extends FilterInputStream
A BufferedInputStream добавляет функциональность к другому потоку ввода — возможность буферизации ввода и поддержку методов mark и reset. При создании BufferedInputStream, создаётся внутренний массив буфера. При чтении или пропуске байтов из потока внутренний буфер заполняется по мере необходимости данными из содержащегося потока ввода, по несколько байтов за раз. Операция reset запоминает точку в потоке ввода, а операция mark заставляет повторно прочитать все байты, прочитанные с момента последней операции mark, прежде чем извлекать новые байты из содержащегося потока ввода.
С:
1.0

Краткое описание полей

Модификатор и тип Поле Описание
protected byte[] buf
Внутренний буферный массив, где хранятся данные.
protected int count
Индекс, на единицу больший, чем индекс последнего допустимого байта в буфере.
protected int marklimit
Максимальный объём предварительного чтения, разрешённого после вызова метода 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.io.InputStream

nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

Методы, объявленные в классе 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(), in.skip(n) вызывает исключение IOException или произошла ошибка ввода-вывода.
См. также:
  • InputStream.skipNBytes(long)

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.
Overrides:
markSupported в классе FilterInputStream
Returns:
значение boolean, указывающее, поддерживает ли этот тип потока методы mark и reset.
См. также:
  • InputStream.mark(int)
  • InputStream.reset()

close

public void close() throws IOException
Закрывает этот входной поток и освобождает все системные ресурсы, связанные с потоком. После закрытия потока дальнейшие вызовы read(), available(), reset() или skip() вызовут исключение IOException. Закрытие уже закрытого потока не имеет эффекта.
Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Overrides:
close в классе FilterInputStream
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

© 1993, 2021, 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.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/BufferedInputStream.html

Spec-Zone.ru

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