Spec-Zone.ru › OpenJDK 24

Класс ByteArrayOutputStream

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

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

С тех пор:
1.0

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

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

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

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

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

Модификатор и тип Метод Описание
void close()
Закрытие потока вывода не оказывает никакого влияния.
void reset()
Сбрасывает поле count этого потока вывода в ноль, тем самым удаляя все накопленные данные в потоке.
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, в этот поток вывода.
void write(int b)
Записывает указанный байт в этот поток вывода.
void writeBytes(byte[] b)
Записывает все содержимое указанного массива байтов в этот поток вывода.
void writeTo(OutputStream out)
Записывает все содержимое этого потока вывода в указанный поток вывода, как если бы вызывался метод 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
См. также:
  • 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 - если произошла ошибка ввода-вывода.

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/io/ByteArrayOutputStream.html

Spec-Zone.ru

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