Класс ByteArrayOutputStream

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

Этот класс реализует поток вывода, в котором данные записываются в массив байтов. Буфер автоматически увеличивается по мере записи данных в него. Данные можно получить, используя toByteArray() и toString().

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

С момента:
1.0

Поля

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

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

protected int count

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

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

Конструктор Описание
ByteArrayOutputStream()

Создаёт новый ByteArrayOutputStream.

ByteArrayOutputStream​(int size)

Создаёт новый ByteArrayOutputStream, с ёмкостью буфера указанного размера в байтах.

Методы

Модификатор и тип Метод Описание
void close()

Закрытие потока вывода не имеет эффекта.

void reset()

Сбрасывает поле count этого ByteArrayOutputStream в ноль, таким образом, все текущие накопленные данные в потоке вывода отбрасываются.

int size()

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

byte[] toByteArray()

Создаёт новый массив байтов.

String toString()

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

String toString​(int hibyte)

Устарело.

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

String toString​(String charsetName)

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

String toString​(Charset charset)

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

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

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

void write​(int b)

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

void writeBytes​(byte[] b)

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

void writeTo​(OutputStream out)

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

Методы, объявленные в классе java.io.OutputStream

flush, nullOutputStream, write

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

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

Поля

buf

protected byte[] buf

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

count

protected int count

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

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

ByteArrayOutputStream

public ByteArrayOutputStream()

Создаёт новый ByteArrayOutputStream. Емкость буфера изначально составляет 32 байта, но увеличивается при необходимости.

ByteArrayOutputStream

public ByteArrayOutputStream(int size)

Создаёт новый ByteArrayOutputStream, с емкостью буфера указанного размера в байтах.

Параметры:
size - начальный размер.
Исключения:
IllegalArgumentException - если размер отрицательный.

Методы

write

public void write(int b)

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

Унаследованно от:
write в классе OutputStream
Параметры:
b - байт, который нужно записать.

write

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

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

Переопределяет:
write в классе OutputStream
Параметры:
b - данные.
off - начальное смещение в данных.
len - количество байтов для записи.
Исключения:
NullPointerException - если b равно null.
IndexOutOfBoundsException - если off отрицательное, len отрицательное или len больше, чем b.length - off

writeBytes

public void writeBytes(byte[] b)

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

Примечание API:
Этот метод эквивалентен write(b, 0, b.length).
Параметры:
b - данные.
Исключения:
NullPointerException - если b равно null.
С:
11

writeTo

public void writeTo(OutputStream out)
             throws IOException

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

Параметры:
out - выходной поток, в который нужно записать данные.
Исключения:
NullPointerException - если out равно null.
IOException - если произошла ошибка ввода-вывода.

reset

public void reset()

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

См. также:
ByteArrayInputStream.count

toByteArray

public byte[] toByteArray()

Создаёт новый массив байтов. Его размер равен текущему размеру этого выходного потока, и действительное содержимое буфера было скопировано в него.

Возвращает:
текущее содержимое этого выходного потока в виде массива байтов.
См. также:
size()

size

public int size()

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

Возвращает:
значение поля count , которое является количеством допустимых байтов в этом выходном потоке.
См. также:
count

toString

public String toString()

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

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

Переопределяет:
toString в классе Object
Возвращает:
Строка, декодированная из содержимого буфера.
С:
1.1

toString

public String toString(String charsetName)
                throws UnsupportedEncodingException

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

Этот метод эквивалентен #toString(charset) который принимает charset.

Вызов этого метода в формате

ByteArrayOutputStream b = ...
      b.toString("UTF-8")
ведет себя точно так же, как выражение
ByteArrayOutputStream b = ...
      b.toString(StandardCharsets.UTF_8)
Параметры:
charsetName - имя поддерживаемой charset
Возвращает:
Строка, декодированная из содержимого буфера.
Исключения:
UnsupportedEncodingException - Если указанная кодировка символов не поддерживается
С:
1.1

toString

public String toString(Charset charset)

Преобразует содержимое буфера в строку, декодируя байты с помощью указанного charset. Длина новой String является функцией набора символов и, следовательно, может не равняться длине массива байтов.

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

Параметры:
charset - набор символов для декодирования bytes
Возвращает:
Строка, декодированная из содержимого буфера.
С:
10

toString

@Deprecated
public String toString(int hibyte)
Устаревший.
Этот метод не правильно преобразует байты в символы. Начиная с JDK 1.1, предпочтительным способом сделать это является использование метода toString(String charsetName) или toString(Charset charset), который принимает имя кодировки или набор символов, или метод toString(), использующий кодировку символов по умолчанию платформы.

Создаёт новую строку. Её размер равен текущему размеру выходного потока, и содержимое буфера было скопировано в него. Каждый символ c в результирующей строке формируется из соответствующего элемента b в массиве байтов таким образом:

c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))

Параметры:
hibyte - старший байт каждого результирующего символа Юникода.
Возвращает:
текущее содержимое выходного потока в виде строки.
См. также:
size(), toString(String), toString()

close

public void close()
           throws IOException

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

Унаследованно от:
close в интерфейсе AutoCloseable
Унаследованно от:
close в интерфейсе Closeable
Переопределяет:
close в классе OutputStream
Исключения:
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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/ByteArrayOutputStream.html

Spec-Zone .ru
спецификации, руководства, описания, API