Поток класса ByteArrayOutputStream создает буфер в памяти, и все данные, отправленные в поток, хранятся в буфере.

Конструкторы

Ниже приведен список конструкторов, предоставляемых классом ByteArrayOutputStream.

Конструктор и описание
1ByteArrayOutputStream()
Конструктор создает ByteArrayOutputStream с буфером в 32 байт.
2ByteArrayOutputStream(int a)
Конструктор создает ByteArrayOutputStream с буфером заданного размера.

Методы

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

Метод и описание
1public void reset()
Метод сбрасывает количество действительных байт в выходном потоке байтового массива до нуля, поэтому все накопленное на выходе будет сброшено.
2public byte[] toByteArray()
Метод создает недавно выделенный массив байтов. Его размер будет текущим размером выходного потока, и содержимое буфера будет скопировано в него. Возвращает текущее содержимое выходного потока в виде байтового массива.
3public String toString()
Преобразует содержимое буфера в строку. Перевод будет выполняться в соответствии с кодировкой установленной по умолчанию. Возвращает строку, переведенную из содержимого буфера.
4public void write(int w)
Запись указанного массива в выходной поток.
5public void write(byte []b, int of, int len)
Запись len количества байтов, начиная смещение с of.
6public 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

Оглавление