Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
void flush()
Очищает этот выходной поток и принудительно записывает все байты из буфера.
static OutputStream nullOutputStream()
Возвращает новый OutputStream, который отбрасывает все байты.
void write(byte[] b)
Записывает b.length байтов из указанного массива байтов в этот выходной поток.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.

Подробное описание полей

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), принимающий имя кодировки или аргумент 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, 2026, 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.

Spec-Zone.ru

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