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