Класс Java ByteArrayOutputStream
Выходной поток массива байтов создаёт в памяти буфер в виде массива байтов, и все данные, отправляемые в выходной поток, сохраняются в этом буфере. Существует несколько способов создать объект 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