Поток класса ByteArrayOutputStream создает буфер в памяти, и все данные, отправленные в поток, хранятся в буфере.
Конструкторы
Ниже приведен список конструкторов, предоставляемых классом ByteArrayOutputStream.
№ | Конструктор и описание |
1 | ByteArrayOutputStream() Конструктор создает ByteArrayOutputStream с буфером в 32 байт. |
2 | ByteArrayOutputStream(int a) Конструктор создает ByteArrayOutputStream с буфером заданного размера. |
Методы
Если Вы используйте объект ByteArrayOutputStream, тогда у Вас всегда есть список вспомогательных методов, которые можно использовать для записи потока или для выполнения других операций над потоком.
№ | Метод и описание |
1 | public void reset() Метод сбрасывает количество действительных байт в выходном потоке байтового массива до нуля, поэтому все накопленное на выходе будет сброшено. |
2 | public byte[] toByteArray() Метод создает недавно выделенный массив байтов. Его размер будет текущим размером выходного потока, и содержимое буфера будет скопировано в него. Возвращает текущее содержимое выходного потока в виде байтового массива. |
3 | public String toString() Преобразует содержимое буфера в строку. Перевод будет выполняться в соответствии с кодировкой установленной по умолчанию. Возвращает строку, переведенную из содержимого буфера. |
4 | public void write(int w) Запись указанного массива в выходной поток. |
5 | public void write(byte []b, int of, int len) Запись len количества байтов, начиная смещение с of. |
6 | public void writeTo(OutputStream outSt) Запись всего содержимого потока в указанный аргумент потока. |
Пример
Ниже приведен пример демонстрации ByteArrayOutputStream и ByteArrayInputStream.
import java.io.*;
public class TestByteStream {
public static void main(String args[])throws IOException {
ByteArrayOutputStream outputByte = new ByteArrayOutputStream(12);
while(outputByte.size()!= 5) {
outputByte.write("hello".getBytes());
}
byte a [] = outputByte.toByteArray();
System.out.println("Вывод содержимого:");
for(int i = 0 ; i < a.length; i++) {
// Вывод символов
System.out.print((char)a[i] + " ");
}
System.out.println();
int b;
ByteArrayInputStream inputByte = new ByteArrayInputStream(a);
System.out.println("Преобразование символов в верхний регистр:" );
for(int j = 0 ; j < 1; j++) {
while(( b = inputByte.read())!= -1) {
System.out.println(Character.toUpperCase((char)b));
}
inputByte.reset();
}
}
}
Получим следующий результат:
Вывод содержимого:
h e l l o
Преобразование символов в верхний регистр:
H
E
L
L
O