Java ByteArrayOutputStream (mit Beispielen)

In diesem Tutorial lernen wir anhand von Beispielen Java ByteArrayOutputStream und seine Methoden kennen.

Die ByteArrayOutputStreamKlasse des java.ioPakets kann zum Schreiben eines Arrays von Ausgabedaten (in Bytes) verwendet werden.

Es erweitert die OutputStreamabstrakte Klasse.

Hinweis : In ByteArrayOutputStreamverwaltet ein internes Array von Bytes zum Speichern der Daten.

Erstellen Sie einen ByteArrayOutputStream

Um einen Byte-Array-Ausgabestream zu erstellen, müssen wir java.io.ByteArrayOutputStreamzuerst das Paket importieren . Sobald wir das Paket importiert haben, können wir hier einen Ausgabestream erstellen.

 // Creates a ByteArrayOutputStream with default size ByteArrayOutputStream out = new ByteArrayOutputStream(); 

Hier haben wir einen Ausgabestream erstellt, der Daten in ein Array von Bytes mit einer Standardgröße von 32 Bytes schreibt. Wir können jedoch die Standardgröße des Arrays ändern.

 // Creating a ByteArrayOutputStream with specified size ByteArrayOutputStream out = new ByteArrayOutputStream(int size); 

Hier gibt die Größe die Länge des Arrays an.

Methoden von ByteArrayOutputStream

Die ByteArrayOutputStreamKlasse bietet die Implementierung der verschiedenen in der OutputStreamKlasse vorhandenen Methoden .

write () Methode

  • write(int byte) - schreibt das angegebene Byte in den Ausgabestream
  • write(byte() array) - schreibt die Bytes aus dem angegebenen Array in den Ausgabestream
  • write(byte() arr, int start, int length) - schreibt die Anzahl der Bytes gleich der Länge des Ausgabestreams aus einem Array ab dem Positionsstart
  • writeTo(ByteArrayOutputStream out1) - schreibt die gesamten Daten des aktuellen Ausgabestreams in den angegebenen Ausgabestream

Beispiel: ByteArrayOutputStream zum Schreiben von Daten

 import java.io.ByteArrayOutputStream; class Main ( public static void main(String() args) ( String data = "This is a line of text inside the string."; try ( // Creates an output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); byte() array = data.getBytes(); // Writes data to the output stream out.write(array); // Retrieves data from the output stream in string format String streamData = out.toString(); System.out.println("Output stream: " + streamData); out.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Ausgabe

 Ausgabestream: Dies ist eine Textzeile innerhalb der Zeichenfolge. 

Im obigen Beispiel haben wir einen Byte-Array-Ausgabestream mit dem Namen output erstellt.

 ByteArrayOutputStream output = new ByteArrayOutputStream(); 

Um die Daten in den Ausgabestream zu schreiben, haben wir die write()Methode verwendet.

Hinweis : Die getBytes()im Programm verwendete Methode konvertiert eine Zeichenfolge in ein Array von Bytes.

Greifen Sie über ByteArrayOutputStream auf Daten zu

  • toByteArray() - gibt das im Ausgabestream vorhandene Array zurück
  • toString() - gibt die gesamten Daten des Ausgabestreams in Zeichenfolgenform zurück

Beispielsweise,

 import java.io.ByteArrayOutputStream; class Main ( public static void main(String() args) ( String data = "This is data."; try ( // Creates an output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); // Writes data to the output stream out.write(data.getBytes()); // Returns an array of bytes byte() byteData = out.toByteArray(); System.out.print("Data using toByteArray(): "); for(int i=0; i 

Output

 Data using toByteArray(): This is data. Data using toString(): This is data. 

In the above example, we have created an array of bytes to store the data returned by the toByteArray() method.

We then have used the for loop to access each byte from the array. Here, each byte is converted into the corresponding character using typecasting.

close() Method

To close the output stream, we can use the close() method.

However, the close() method has no effect in ByteArrayOutputStream class. We can use the methods of this class even after the close() method is called.

Other Methods of ByteArrayOutputStream

Methoden Beschreibungen
size() Gibt die Größe des Arrays im Ausgabestream zurück
flush() löscht den Ausgabestream

To learn more, visit Java ByteArrayOutputStream (official Java documentation).

Interessante Beiträge...