Вы находитесь на странице: 1из 7

ByteArrayInputStream

ByteArrayOutputStream
java.io

Класс ByteArrayInputStream

 java.lang.Object
 java.io.InputStream
 java.io.ByteArrayInputStream

Все реализованные интерфейсы:


Closeable, AutoCloseable

public class ByteArrayInputStream


extends InputStream

ByteArrayInputStream содержит внутренний буфер, который содержит байты, которые могут быть прочитаны из
потока. Внутренний счетчик отслеживает следующий байт, предоставляемый методом read .
Закрытие ByteArrayInputStream не имеет никакого эффекта. Методы в этом классе могут вызываться после закрытия
потока без генерации исключения IOException .
Модификатор и Тип Поле и описание

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)

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

void reset ()

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

long skip (long n)

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

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


read

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


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() .
Если никакой метки не было установлено, то значение метки - это смещение, переданное конструктору (или 0, если
смещение не было предоставлено).
count

protected int count
Индекс на единицу больше, чем последний действительный символ в буфере входного потока. Это значение всегда
должно быть неотрицательным и не превышать длину buf . Это на единицу больше, чем позиция последнего байта
в buf который может быть прочитан из буфера входного потока.
Детали конструктора
public ByteArrayInputStream (byte [] buf)
Создает ByteArrayInputStream чтобы он использовал buf качестве своего буферного массива. Буферный массив не
копируется. Начальное значение pos равно 0 а начальное значение count является длиной buf .
Параметры: buf - входной буфер.

public ByteArrayInputStream(byte[] buf,
int offset,
int length)
Создает ByteArrayInputStream который использует buf качестве своего буферного массива. Начальное
значение pos является offset а начальное значение count является минимальным
значением offset+length и buf.length . Буферный массив не копируется. Метка буфера устанавливается на указанное
смещение.
Параметры: buf - входной буфер.
offset - смещение в буфере первого байта для чтения.
length - максимальное количество байтов для чтения из буфера.

Методы

read

public int read()
Читает следующий байт данных из этого входного потока. Байт значения возвращается как int в диапазоне
от 0 до 255 . Если байт недоступен из-за достижения конца потока, возвращается значение -1 .
Этот метод read не может заблокировать.
Возвращает: следующий байт данных или -1 если достигнут конец потока.
read

public int read(byte[] b,
int off,
int len)
Считывает до байтов данных в массив байтов из этого входного потока. Если pos равно count , то -1 возвращается, чтобы
указать конец файла. В противном случае число прочитанных байтов равно меньшему из len и count-
pos . Если k положительно, то байты buf[pos] через buf[pos+k-1] копируются в b[off] через b[off+k-1] способом,
выполняемым System.arraycopy . Значение k добавляется в pos а k возвращается.
Этот метод read не может заблокировать.
Параметры: b - буфер, в который считываются данные.
off - начальное смещение в массиве назначения b
len - максимальное количество прочитанных байтов.
Возвращает: общее число байтов, считанных в буфер, или -1 если данных больше нет, поскольку достигнут конец
потока.
Броски: NullPointerException - Если b является null .
IndexOutOfBoundsException - если off отрицательный, len отрицательный, или len больше, чем b.length - off
skip

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

public int available()
Возвращает количество оставшихся байтов, которые могут быть прочитаны (или пропущены) из этого входного потока.
Возвращаемым значением является count - pos , которое представляет собой количество байтов, оставшихся для чтения
из входного буфера.
Возвращает: количество оставшихся байтов, которые могут быть прочитаны (или пропущены) из этого входного
потока без блокировки.
markSupported

public boolean markSupported()
Проверяет, поддерживает ли этот InputStream метку / сброс. Метод markSupported объекта ByteArrayInputStream всегда
возвращает true .
Возвращает: true если этот экземпляр потока поддерживает методы mark и reset; false противном случае.
mark

public void mark(int readAheadLimit)
Установите текущую отмеченную позицию в потоке. Объекты ByteArrayInputStream помечаются в нулевой позиции по
умолчанию при построении. Этим методом они могут быть помечены в другом месте в буфере.
Если метка не была установлена, то значением метки является смещение, переданное конструктору (или 0, если
смещение не было предоставлено).
Примечание: readAheadLimit для этого класса не имеет смысла.
Параметры: readAheadLimit - максимальный лимит байтов, который может быть прочитан до того, как позиция метки
станет недействительной.
reset

public void reset()
Сбрасывает буфер в отмеченную позицию. Помеченная позиция равна 0, если в конструкторе не была отмечена другая
позиция или не было указано смещение.
close

public void close()
throws IOException
Закрытие ByteArrayInputStream не имеет никакого эффекта. Методы в этом классе могут вызываться после закрытия
потока без генерации исключения IOException .
Броски:IOException - если ошибка ввода-вывода происходит.

java.io

Класс ByteArrayOutputStream

 java.lang.Object
 java.io.OutputStream
 java.io.ByteArrayOutputStream

Все реализованные интерфейсы: Closeable, Flushable, AutoCloseable

public class ByteArrayOutputStream


extends OutputStream
Этот класс реализует выходной поток, в котором данные записываются в байтовый массив. Буфер автоматически
увеличивается при записи данных в него. Данные могут быть получены с помощью toByteArray() и toString() .
Закрытие ByteArrayOutputStream не имеет никакого эффекта. Методы в этом классе могут вызываться после закрытия
потока без генерации исключения IOException .

Сводка по полю

поля

Модификатор и Тип Поле и описание

protected byte[] buf

Буфер, в котором хранятся данные.

protected int count

Количество действительных байтов в буфере.

Сводка конструктора

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

Конструктор и описание

ByteArrayOutputStream ()

Создает новый поток вывода массива байтов.

ByteArrayOutputStream (int size)
Создает новый выходной поток массива байтов с емкостью буфера указанного размера в байтах.

методы 

Модификатор и Метод и описание


Тип

void close ()

Закрытие ByteArrayOutputStream не имеет никакого эффекта.

void reset ()

Сбрасывает поле count этого выходного потока массива байтов в ноль, так что все накопленные в
данный момент выходные данные в выходном потоке отбрасываются.

int size ()

Возвращает текущий размер буфера.

byte[] toByteArray ()

Создает вновь выделенный байтовый массив.

String toString ()

Преобразует содержимое буфера в байты декодирования строки, используя набор символов


платформы по умолчанию.

String toString (int hibyte)

Устаревшее.

Этот метод неправильно конвертирует байты в символы. Начиная с JDK 1.1,


предпочтительным способом сделать это является метод toString(String enc) , который
принимает аргумент encoding-name, или метод toString() , который использует кодировку
символов платформы по умолчанию.

String toString ( String charsetName)

Преобразует содержимое буфера в строку путем декодирования байтов с использованием


указанного charsetName .

void write (byte[] b, int off, int len)

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


массива байтов.

void write (int b)

Записывает указанный байт в этот поток вывода массива байтов.

void writeTo ( OutputStream out)

Записывает полное содержимое этого выходного потока массива байтов в указанный аргумент
выходного потока, как если бы вызывал метод записи выходного потока, используя out.write(buf,
0, count) .

Резюме метода

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


flush , write

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


clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
Детали поля

 buf
protected byte[] buf
Буфер, в котором хранятся данные.

 count
protected int count
Количество действительных байтов в буфере.

Детали конструктора

 ByteArrayOutputStream
public ByteArrayOutputStream ()
Создает новый поток вывода массива байтов. Первоначально емкость буфера составляет 32 байта, хотя при
необходимости его размер увеличивается.

 ByteArrayOutputStream
public ByteArrayOutputStream (int size)
Создает новый выходной поток массива байтов с емкостью буфера указанного размера в байтах.
Параметры:size - начальный размер.
Броски:IllegalArgumentException - если размер отрицателен.
Методы

write

public void write(int b)
Записывает указанный байт в этот поток вывода массива байтов.
Параметры:b - байт для записи.
write

public void write(byte[] b,
int off,
int len)
Записывает len байтов из указанного массива байтов, начиная со смещения, в этот поток вывода массива байтов.
Параметры: b - данные.
off - начальное смещение в данных.
len - количество байтов для записи.
writeTo

public void writeTo(OutputStream out)
throws IOException
Записывает полное содержимое этого выходного потока массива байтов в указанный аргумент выходного потока, как
если бы вызывал метод записи выходного потока, используя out.write(buf, 0, count) .
Параметры: out - выходной поток для записи данных.
Броски: IOException - если ошибка ввода-вывода происходит.
reset

public void reset()
Сбрасывает поле count этого выходного потока массива байтов в ноль, так что все накопленные в данный момент
выходные данные в выходном потоке отбрасываются. Выходной поток можно использовать снова, повторно используя
уже выделенное буферное пространство.
toByteArray

public byte[] toByteArray()
Создает вновь выделенный байтовый массив. Его размер является текущим размером этого выходного потока, и в него
было скопировано допустимое содержимое буфера.
Возвращает: текущее содержимое этого выходного потока в виде байтового массива.
size

public int size()
Возвращает текущий размер буфера.
Возвращает: значение поля count , которое является количеством действительных байтов в этом выходном потоке.
toString

public String toString()
Преобразует содержимое буфера в байты декодирования строки, используя набор символов платформы по
умолчанию. Длина новой строки является функцией набора символов и, следовательно, не может быть равна размеру
буфера.
Этот метод всегда заменяет последовательности некорректного ввода и не отображаемых символов строкой замены по
умолчанию для набора символов платформы по умолчанию. Класс CharsetDecoder следует использовать, когда
требуется больший контроль над процессом декодирования.
Возвращает: Строка, расшифрованная из содержимого буфера.
toString

public String toString(String charsetName)
throws UnsupportedEncodingException
Преобразует содержимое буфера в строку путем декодирования байтов с использованием
указанного charsetName . Длина новой строки является функцией набора символов и, следовательно, не может быть
равна длине байтового массива.
Этот метод всегда заменяет последовательности некорректного ввода и не отображаемых символов строкой замены
этого набора символов по умолчанию. Класс CharsetDecoder следует использовать, когда требуется больший контроль
над процессом декодирования.
Параметры: charsetName - имя поддерживаемой кодировки
Возвращает: Строка, расшифрованная из содержимого буфера.
Броски: UnsupportedEncodingException - Если названная кодировка не поддерживается
close

public void close()
throws IOException
Закрытие ByteArrayOutputStream не имеет никакого эффекта. Методы в этом классе могут вызываться после закрытия
потока без генерации исключения IOException .
Заменяет: close в классе OutputStream
Броски: IOException - если ошибка ввода-вывода происходит.

Вам также может понравиться