Spec-Zone.ru › OpenJDK 25

Класс ByteArrayOutputStream

java.lang.Object
java.io.OutputStream
java.io.ByteArrayOutputStream
Все реализуемые интерфейсы:
Closeable, Flushable, AutoCloseable
public class ByteArrayOutputStream extends OutputStream
Этот класс реализует поток вывода, в котором данные записываются в массив байтов. Буфер автоматически увеличивается по мере записи данных. Данные можно получить с помощью toByteArray() и toString().

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

Начиная с:
1.0

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

Модификатор и тип Поле Описание
protected byte[] buf
Буфер, в котором хранятся данные.
protected int count
Количество допустимых байтов в буфере.

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

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

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрытие ByteArrayOutputStream не имеет эффекта.
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 в указанный аргумент-поток вывода, как если бы был вызван метод записи потока вывода с использованием out.write(buf, 0, count).

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

flush, nullOutputStream, write

Методы, объявленные в классе 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 в указанный аргумент-поток вывода, как если бы был вызван метод записи потока вывода с использованием 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
См. также:
  • Charset.defaultCharset()

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 — старший байт каждого результирующего символа Unicode.
Возвращает:
текущее содержимое потока вывода в виде строки.
См. также:
  • size()
  • toString(String)
  • toString()
  • Charset.defaultCharset()

close

public void close() throws IOException
Закрытие ByteArrayOutputStream не имеет эффекта. Методы этого класса можно вызывать после закрытия потока без возникновения IOException.
Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Переопределяет:
close в классе OutputStream
Исключения:
IOException — если возникает ошибка ввода-вывода.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.base/java/io/ByteArrayOutputStream.html

Spec-Zone.ru

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