In diesem Beispiel lernen wir, einen Eingabestream in das Byte-Array in Java zu konvertieren.
Um dieses Beispiel zu verstehen, sollten Sie die folgenden Java-Programmierthemen kennen:
- Java InputStream-Klasse
- Java ByteArrayInputStream-Klasse
- Java ByteArrayOutputStream-Klasse
Beispiel 1: Java-Programm zum Konvertieren von InputStream in Byte-Array
import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // convert the input stream to byte array byte() array = stream.readAllBytes(); System.out.println("Byte Array: " + Arrays.toString(array)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Ausgabe
Eingabestream: java.io.ByteArrayInputStream@27082746 Byte-Array: (1, 2, 3, 4)
Im obigen Beispiel haben wir einen Eingabestream mit dem Namen stream erstellt. Beachten Sie die Zeile,
byte() array = stream.readAllBytes();
Hier gibt die readAllBytes()
Methode alle Daten aus dem Stream zurück und speichert sie im Byte-Array.
Hinweis : Wir haben die Arrays.toString()
Methode verwendet, um das gesamte Array in eine Zeichenfolge zu konvertieren.
Beispiel 2: Konvertieren Sie InputStream mithilfe des Ausgabestreams in ein Byte-Array
import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // create an output stream ByteArrayOutputStream output = new ByteArrayOutputStream(); // create a byte array to store input stream byte() array = new byte(4); int i; // read all data from input stream to array while ((i = stream.read(array, 0, array.length)) != -1) ( // write all data from array to output output.write(array, 0, i); ) byte() data = output.toByteArray(); // convert the input stream to byte array System.out.println("Byte Array: " + Arrays.toString(data)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Ausgabe
Eingabestream: java.io.ByteArrayInputStream@27082746 Byte-Array: (1, 2, 3, 4)
Im obigen Beispiel haben wir einen Eingabestream aus der Array-Eingabe erstellt. Beachten Sie den Ausdruck,
stream.read(array, 0, array.length)
Hier werden alle Elemente aus dem Stream ab Index 0 im Array gespeichert . Wir speichern dann alle Elemente des Arrays im Ausgabestream mit dem Namen output.
output.write(array, 0, i)
Schließlich rufen wir die toByteArray()
Methode der ByteArrayOutputStream
Klasse auf, um den Ausgabestream in ein Byte-Array mit dem Namen data zu konvertieren.