Java - ByteArrayOutputStream

Il flusso di classe ByteArrayOutputStream crea un buffer in memoria e tutti i dati inviati al flusso vengono archiviati nel buffer.

Di seguito è riportato l'elenco dei costruttori che devono essere forniti dalla classe ByteArrayOutputStream.

Sr.No. Costruttore e descrizione
1

ByteArrayOutputStream()

Questo costruttore crea un ByteArrayOutputStream con un buffer di 32 byte.

2

ByteArrayOutputStream(int a)

Questo costruttore crea un ByteArrayOutputStream con un buffer della dimensione specificata.

Una volta che hai in mano l'oggetto ByteArrayOutputStream , c'è un elenco di metodi di supporto che possono essere utilizzati per scrivere il flusso o per eseguire altre operazioni sul flusso.

Sr.No. Metodo e descrizione
1

public void reset()

Questo metodo reimposta il numero di byte validi del flusso di output dell'array di byte su zero, quindi tutto l'output accumulato nel flusso verrà scartato.

2

public byte[] toByteArray()

Questo metodo crea un array Byte appena allocato. La sua dimensione sarebbe la dimensione corrente del flusso di output e il contenuto del buffer verrà copiato in esso. Restituisce il contenuto corrente del flusso di output come matrice di byte.

3

public String toString()

Converte il contenuto del buffer in una stringa. La traduzione verrà eseguita in base alla codifica dei caratteri predefinita. Restituisce la stringa tradotta dal contenuto del buffer.

4

public void write(int w)

Scrive la matrice specificata nel flusso di output.

5

public void write(byte []b, int of, int len)

Scrive un numero len di byte a partire da offset off nel flusso.

6

public void writeTo(OutputStream outSt)

Scrive l'intero contenuto di questo flusso nell'argomento del flusso specificato.

Esempio

Di seguito è riportato un esempio per dimostrare ByteArrayOutputStream e ByteArrayInputStream.

import java.io.*;
public class ByteStreamTest {

   public static void main(String args[])throws IOException {
      ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12);

      while( bOutput.size()!= 10 ) {
         // Gets the inputs from the user
         bOutput.write("hello".getBytes());  
      }
      byte b [] = bOutput.toByteArray();
      System.out.println("Print the content");
      
      for(int x = 0; x < b.length; x++) {
         // printing the characters
         System.out.print((char)b[x]  + "   "); 
      }
      System.out.println("   ");

      int c;
      ByteArrayInputStream bInput = new ByteArrayInputStream(b);
      System.out.println("Converting characters to Upper case " );
      
      for(int y = 0 ; y < 1; y++ ) {
         while(( c = bInput.read())!= -1) {
            System.out.println(Character.toUpperCase((char)c));
         }
         bInput.reset(); 
      }
   }
}

Ecco l'esempio di esecuzione del programma sopra:

Produzione

Print the content
h   e   l   l   o   h   e   l   l   o      
Converting characters to Upper case 
H
E
L
L
O
H
E
L
L
O