In diesem Tutorial lernen wir anhand von Beispielen Java ByteArrayOutputStream und seine Methoden kennen.
Die ByteArrayOutputStream
Klasse des java.io
Pakets kann zum Schreiben eines Arrays von Ausgabedaten (in Bytes) verwendet werden.
Es erweitert die OutputStream
abstrakte Klasse.
Hinweis : In ByteArrayOutputStream
verwaltet 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.ByteArrayOutputStream
zuerst 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 ByteArrayOutputStream
Klasse bietet die Implementierung der verschiedenen in der OutputStream
Klasse vorhandenen Methoden .
write () Methode
write(int byte)
- schreibt das angegebene Byte in den Ausgabestreamwrite(byte() array)
- schreibt die Bytes aus dem angegebenen Array in den Ausgabestreamwrite(byte() arr, int start, int length)
- schreibt die Anzahl der Bytes gleich der Länge des Ausgabestreams aus einem Array ab dem PositionsstartwriteTo(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ücktoString()
- 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).