English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen wir anhand von Beispielen Java ByteArrayOutputStream und seine Methoden kennen.
Die Klasse ByteArrayOutputStream aus dem java.io-Paket kann zur Schreiboperation von Ausgabedatenarrays (in Bytes) verwendet werden.
Es erbt von der abstrakten Klasse OutputStream.
Hinweis:Ein internes Byte-Array wird in ByteArrayOutputStream verwendet, um Daten zu speichern.
Um einen ByteArrayOutputStream zu erstellen, müssen wir zunächst das Paket java.io.ByteArrayOutputStream importieren. Nach dem Importieren des Pakets können wir den Ausgabestrom erstellen.
//Erstellen Sie einen ByteArrayOutputStream mit der Standardgröße ByteArrayOutputStream out = new ByteArrayOutputStream();
Hier erstellen wir einen Ausgabestrom, der Daten in eine Größe von32In einem Byte-Array. Aber wir können die Standardgröße des Arrays ändern.
//Erstellen Sie einen ByteArrayOutputStream mit der angegebenen Größe ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
Hier wird size die Länge des Arrays angegeben.
Die Klasse ByteArrayOutputStream bietet verschiedene Methodenimplementierungen, die im OutputStream-Klassen existieren.
write(int byte) - Schreiben Sie die angegebenen Bytes in den Ausgabestrom
write(byte[] array) - Schreiben Sie die Bytes des angegebenen Arrays in den Ausgabestrom
write(byte[] arr, int start, int length)- Schreiben Sie von der Position start aus eine Anzahl von bytes der Länge length in den Ausgabestrom des Arrays
writeTo(ByteArrayOutputStream out1) -Schreiben Sie alle Daten des aktuellen Ausgabestroms in den angegebenen Ausgabestrom
import java.io.ByteArrayOutputStream; class Main { public static void main(String[] args) { String data = "Dies ist eine Zeile von Text innerhalb der Zeichenkette."; try { //Erstellung eines Ausgabestroms ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] array = data.getBytes(); //Daten in den Ausgabestrom schreiben out.write(array); //Daten aus dem Ausgabestrom in String-Format abrufen String streamData = out.toString(); System.out.println("Ausgabestrom: ", + streamData); out.close(); } catch(Exception e) { e.getStackTrace(); } } }
Ausgaberesultat
Ausgabestrom: This is a line of text inside the string.
Im obigen Beispiel haben wir einen namensgebenden Byte-Array-Ausgabestrom output erstellt.
ByteArrayOutputStream output = new ByteArrayOutputStream();
Um Daten in den Ausgabestrom zu schreiben, haben wir das write() -Verfahren verwendet.
Hinweis:Das getBytes() -Verfahren im Programm wandelt einen String in ein Byte-Array um.
toByteArray() - Rückgabe des im Ausgabestrom vorhandenen Arrays
toString() - Rückgabe der gesamten Daten des Ausgabestroms in Form eines Strings
Beispielsweise,
import java.io.ByteArrayOutputStream; class Main { public static void main(String[] args) { String data = "This is data."; try { //Erstellung des Ausgabestroms ByteArrayOutputStream out = new ByteArrayOutputStream(); //Daten in den Ausgabestrom schreiben out.write(data.getBytes()); //Rückgabe eines Byte-Arrays byte[] byteData = out.toByteArray(); System.out.print("Verwenden Sie toByteArray() der Daten: ", for(int i=0; i<byteData.length; i++) { System.out.print((char)byteData[i]); } //Rückgabe eines Strings String stringData = out.toString(); System.out.println("\nVerwenden Sie toString() der Daten: ", + stringData); out.close(); } catch(Exception e) { e.getStackTrace(); } } }
Ausgaberesultat
Verwendete toByteArray()-Daten: This is data. Verwendete toString()-Daten: This is data.
Im obigen Beispiel haben wir einen Byte-Array erstellt, um die Daten zurückzugeben, die von der Methode toByteArray() erhalten werden.
Dann verwenden wir einen for-Loop, um jeden Byte im Array abzuarbeiten. Hierbei wird jeder Byte in den entsprechenden Zeichen umgewandelt.
Um den Output Stream zu schließen, können wir die close()-Methode verwenden.
Allerdings ist die close()-Methode in der Klasse ByteArrayOutputStream ungültig. Selbst wenn die close()-Methode aufgerufen wird, können wir die Methoden dieses Klassen verwenden.
Methode | Inhaltsbeschreibung |
---|---|
size() | Größe des Arrays im Output Stream zurückgeben |
flush() | Output Stream leeren |