English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, impareremo tramite esempi Java ByteArrayOutputStream e i suoi metodi
La classe ByteArrayOutputStream del pacchetto java.io può essere utilizzata per scrivere array di dati di output (in byte)
Eredita l'astrazione OutputStream
AttenzioneMaintiene un array di byte interno per memorizzare i dati in ByteArrayOutputStream
Per creare uno stream di output di array di byte, dobbiamo prima importare il pacchetto java.io.ByteArrayOutputStream. Dopo aver importato il pacchetto, possiamo creare lo stream di output.
// Crea un ByteArrayOutputStream di dimensione predefinita ByteArrayOutputStream out = new ByteArrayOutputStream();
In questo caso, abbiamo creato uno stream di output che scrive dati in un array di byte di dimensione predefinita di 32 byte. Ma possiamo cambiare la dimensione predefinita dell'array.
// Crea un ByteArrayOutputStream di dimensione specificata ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
In questo caso, size specifica la lunghezza dell'array
La classe ByteArrayOutputStream fornisce implementazioni di diversi metodi presenti nello stream di output
write(int byte) - Scrive il byte specificato nello stream di output
write(byte[] array) - Scrive i byte dell'array specificato nello stream di output
write(byte[] arr, int start, int length) - Scrive una sequenza di byte di lunghezza equal a length a partire dalla posizione start nell'output stream dell'array
writeTo(ByteArrayOutputStream out1) - Scrive tutti i dati dello stream di output corrente nello stream di output specificato
import java.io.ByteArrayOutputStream; class Main { public static void main(String[] args) { String data = "This is a line of text inside the string."; try { //Crea un output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] array = data.getBytes(); //Scrive i dati nell'output stream out.write(array); //Recupera i dati dall'output stream in formato stringa String streamData = out.toString(); System.out.println("Output stream: " + streamData); out.close(); } catch(Exception e) { e.getStackTrace(); } } }
Risultato di output
Output stream: This is a line of text inside the string.
Nell'esempio sopra, abbiamo creato un output stream di array di byte chiamato output.
ByteArrayOutputStream output = new ByteArrayOutputStream();
Per scrivere i dati nell'output stream, abbiamo utilizzato il metodo write().
Attenzione:Il metodo getBytes() utilizzato nel programma converte una stringa in un array di byte.
toByteArray() - Restituisce l'array esistente nell'output stream
toString() - Restituisce tutti i dati dell'output stream in forma di stringa
Ad esempio,
import java.io.ByteArrayOutputStream; class Main { public static void main(String[] args) { String data = "This is data."; try { //Crea un output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); //Scrive i dati nell'output stream out.write(data.getBytes()); //Restituisce un array di byte byte[] byteData = out.toByteArray(); System.out.print("Utilizzando toByteArray() dei dati: "); for(int i=0; i<byteData.length; i++) { System.out.print((char)byteData[i]); } //Restituisce una stringa String stringData = out.toString(); System.out.println("\nUtilizzando toString() dei dati: " + stringData); out.close(); } catch(Exception e) { e.getStackTrace(); } } }
Risultato di output
Dati utilizzati con toByteArray(): This is data. Dati utilizzati con toString(): This is data.
Nel esempio sopra, abbiamo creato un array di byte per memorizzare i dati restituiti dal metodo toByteArray().
Poi usiamo un ciclo for per accedere a ogni byte dell'array. Qui, usiamo la conversione di tipo per convertire ogni byte nel carattere corrispondente.
Per chiudere lo stream di output, possiamo utilizzare il metodo close().
Ma il metodo close() nella classe ByteArrayOutputStream non è valido. Anche se è stato chiamato il metodo close(), possiamo utilizzare i metodi di questo tipo.
Metodo | Descrizione del contenuto |
---|---|
size() | Restituisci la dimensione dell'array nello stream di output |
flush() | Pulisci lo stream di output |