Spec-Zone.ru › OpenJDK 8

Класс ByteArrayInputStream

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

public class ByteArrayInputStream
extends InputStream

A ByteArrayInputStream содержит внутренний буфер, содержащий байты, которые могут быть прочитаны из потока. Внутренний счётчик отслеживает следующий байт, который должен быть предоставлен методом read.

Закрытие ByteArrayInputStream не имеет эффекта. Методы в этом классе могут быть вызваны после закрытия потока без генерации IOException.

С тех пор:
JDK1.0
См. также:
StringBufferInputStream

Поля

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

Массив байтов, предоставленный создателем потока.

protected int count

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

protected int mark

Текущая отмеченная позиция в потоке.

protected int pos

Индекс следующего символа для чтения из буфера входного потока.

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

Конструктор и описание
ByteArrayInputStream(byte[] buf)

Создаёт ByteArrayInputStream так, чтобы он использовал buf в качестве массива буфера.

ByteArrayInputStream(byte[] buf, int offset, int length)

Создаёт ByteArrayInputStream, который использует buf в качестве массива буфера.

Методы

Модификатор и тип Метод и описание
int available()

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

void close()

Закрытие ByteArrayInputStream не имеет эффекта.

void mark(int readAheadLimit)

Устанавливает текущую отмеченную позицию в потоке.

boolean markSupported()

Проверяет, поддерживает ли этот InputStream отметку/сброс.

int read()

Читает следующий байт данных из этого входного потока.

int read(byte[] b, int off, int len)

Читает до len байтов данных в массив байтов из этого входного потока.

void reset()

Сбрасывает буфер до отмеченной позиции.

long skip(long n)

Пропускает n байтов входных данных из этого входного потока.

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

read

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

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

Поля

buf

protected byte[] buf

Массив байтов, предоставленный создателем потока. Элементы buf[0] по buf[count-1] — это единственные байты, которые могут быть прочитаны из потока; элемент buf[pos] — следующий байт для чтения.

pos

protected int pos

Индекс следующего символа для чтения из буфера входного потока. Это значение должно всегда быть неотрицательным и не больше значения count. Следующий байт для чтения из буфера входного потока будет buf[pos].

mark

protected int mark

Текущая отмеченная позиция в потоке. Объекты ByteArrayInputStream по умолчанию отмечаются в позиции ноль при создании. Они могут быть помечены в другой позиции в буфере с помощью метода mark(). Текущая позиция буфера устанавливается в эту точку методом reset().

Если метка не была установлена, то значение mark — это смещение, переданное в конструктор (или 0, если смещение не было передано).

Since:
JDK1.1

count

protected int count

Индекс, на единицу больший, чем последний допустимый символ в буфере входного потока. Это значение должно всегда быть неотрицательным и не больше длины buf. Оно на единицу больше позиции последнего байта в buf , который может быть прочитан из буфера входного потока.

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

ByteArrayInputStream

public ByteArrayInputStream(byte[] buf)

Создаёт ByteArrayInputStream таким образом, что он использует buf в качестве массива буфера. Массив буфера не копируется. Начальное значение pos — 0, а начальное значение count — длина buf.

Parameters:
buf - буфер ввода.

ByteArrayInputStream

public ByteArrayInputStream(byte[] buf,
                            int offset,
                            int length)

Создаёт ByteArrayInputStream, который использует buf в качестве массива буфера. Начальное значение pos — offset, а начальное значение count — минимум из offset+length и buf.length. Массив буфера не копируется. Метка буфера устанавливается в указанное смещение.

Parameters:
buf - буфер ввода.
offset - смещение в буфере первого байта для чтения.
length - максимальное количество байтов для чтения из буфера.

Методы

read

public int read()

Читает следующий байт данных из этого входного потока. Значение байта возвращается как int в диапазоне 0 по 255. Если байт недоступен из-за достижения конца потока, возвращается значение -1.

Этот метод read не может блокироваться.

Specified by:
read в классе InputStream
Returns:
следующий байт данных или -1, если достигнут конец потока.

read

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

Читает до len байтов данных в массив байтов из этого входного потока. Если pos равно count, то возвращается -1 для обозначения конца файла. В противном случае число k прочитанных байтов равно меньшему из len и count-pos. Если k положительно, то байты buf[pos] по buf[pos+k-1] копируются в b[off] по b[off+k-1] так, как выполняется System.arraycopy. Значение k добавляется к pos и возвращается k.

Этот метод read не может блокироваться.

Overrides:
read в классе InputStream
Parameters:
b - буфер, в который считываются данные.
off - начальное смещение в целевом массиве b
len - максимальное количество байтов для чтения.
Returns:
общее количество прочитанных байтов в буфер или -1 , если больше нет данных из-за достижения конца потока.
Throws:
NullPointerException - Если b равно null.
IndexOutOfBoundsException - Если off отрицательно, len отрицательно или len больше, чем b.length - off
See Also:
InputStream.read()

skip

public long skip(long n)

Пропускает n байтов входных данных из этого входного потока. Меньшее количество байтов может быть пропущено, если достигнут конец входного потока. Фактическое количество k байтов для пропуска равно меньшему из n и count-pos. Значение k добавляется к pos и возвращается k.

Overrides:
skip в классе InputStream
Parameters:
n - количество байтов для пропуска.
Returns:
фактическое количество пропущенных байтов.

available

public int available()

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

Возвращаемое значение — count - pos, которое является количеством байтов, оставшихся для чтения из буфера ввода.

Overrides:
available в классе InputStream
Returns:
количество оставшихся байтов, которые могут быть прочитаны (или пропущены) из этого входного потока без блокировки.

markSupported

public boolean markSupported()

Проверяет, поддерживает ли этот InputStream метку/сброс. Метод markSupported класса ByteArrayInputStream всегда возвращает true.

Overrides:
markSupported в классе InputStream
Returns:
true , если этот поток поддерживает методы mark и reset; false в противном случае.
Since:
JDK1.1
See Also:
InputStream.mark(int), InputStream.reset()

mark

public void mark(int readAheadLimit)

Устанавливает текущую отмеченную позицию в потоке. Объекты ByteArrayInputStream по умолчанию отмечаются в позиции ноль при создании. Они могут быть отмечены в другой позиции в буфере с помощью этого метода.

Если метка не была установлена, то значение метки — это смещение, переданное в конструктор (или 0, если смещение не было передано).

Примечание: Метка для этого класса не имеет смысла.

Overrides:
mark в классе InputStream
Parameters:
readAheadLimit - максимальное ограничение байтов, которые могут быть прочитаны, прежде чем позиция метки станет недействительной.
Since:
JDK1.1
See Also:
InputStream.reset()

reset

public void reset()

Сбрасывает буфер до отмеченной позиции. Отмеченная позиция — 0, если не была установлена иная позиция или смещение не было указано в конструкторе.

Overrides:
reset в классе InputStream
See Also:
InputStream.mark(int), IOException

close

public void close()
           throws IOException

Закрытие ByteArrayInputStream не имеет эффекта. Методы в этом классе могут вызываться после закрытия потока без генерации IOException.

Specified by:
close в интерфейсе Closeable
Specified by:
close в интерфейсе AutoCloseable
Overrides:
close в классе InputStream
Throws:
IOException - если происходит ошибка ввода-вывода.

© 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