Spec-Zone.ru › OpenJDK 21

Класс 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 в указанный поток вывода, как если бы вызывали метод 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) зависит от кодировки и, следовательно, может не равняться размеру буфера.

Этот метод эквивалентен #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, 2023, 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/21/docs/api/java.base/java/io/ByteArrayOutputStream.html

Spec-Zone.ru

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