Класс Java ByteArrayOutputStream

Java 流(Stream)Поток Java


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

Следующий конструктор создаёт буфер размером 32 байта (размер по умолчанию).

OutputStream bOut = new ByteArrayOutputStream();

Другой конструктор создаёт буфер размеромaбайт.

OutputStream bOut = new ByteArrayOutputStream(int a)

После успешного создания объекта ByteArrayOutputStream можно обратиться к следующему списку методов для выполнения операций записи или других операций с потоком.

Нет. Описание метода
1 public void reset()
У этого выходного потока массива байтовcountполе сбрасывается в ноль, тем самым отбрасывая все выходные данные, накопленные в данный момент в потоке.
2 public byte[] toByteArray()
Создает новый выделенный массив байтов. Размер массива равен размеру текущего выходного потока, а его содержимое — копия текущего выходного потока.
3 public String
содержимое буфера, преобразуя байты в символы с использованием кодировки символов по умолчанию платформы.
4 public void write(int w)
Записывает указанный байт в этот поток вывода массива байтов.
5 public void write(byte [] b, int off, int len)
В указанном массиве байтовoffначиная сlenбайты записываются в этот поток вывода массива байтов.
6 public void writeTo(OutputStream outSt)
Записывает содержимое этого потока вывода массива байтов в указанный аргумент выходного потока.

Пример

В следующем примере демонстрируется использование ByteArrayInputStream и ByteArrayOutputStream:

Пример

import java.io.*; public class ByteStreamTest { public static void main(String args[])throws IOException { ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12); while( bOutput.size()!= 10 ) { //Получить пользовательский ввод bOutput.write(System.in.read()); } byte b [] = bOutput.toByteArray(); System.out.println("Вывести содержимое"); for(int x= 0 ; x < b.length; x++) { //Вывести символы System.out.print((char)b[x] + " "); } System.out.println(" "); int c; ByteArrayInputStream bInput = new ByteArrayInputStream(b); System.out.println("Преобразование символов в верхний регистр " ); for(int y = 0 ; y < 1; y++ ) { while(( c= bInput.read())!= -1) { System.out.println(Character.toUpperCase((char)c)); } bInput.reset(); } } }

Результат компиляции и запуска приведенного выше примера выглядит следующим образом:

asdfghjkly
Print the content
a   s   d   f   g   h   j   k   l   y
Converting characters to Upper case
A
S
D
F
G
H
J
K
L
Y

Java 流(Stream)Поток Java

Другие расширения