Πρόγραμμα Java για τη μετατροπή του InputStream σε συστοιχία Byte

Σε αυτό το παράδειγμα, θα μάθουμε να μετατρέπουμε μια ροή εισόδου σε πίνακα byte στην Java.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:

  • Τάξη Java InputStream
  • Java ByteArrayInputStream Class
  • Java ByteArrayOutputStream Class

Παράδειγμα 1: Πρόγραμμα Java για μετατροπή του InputStream σε 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(); ) ) )

Παραγωγή

 Ροή εισόδου: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

Στο παραπάνω παράδειγμα, δημιουργήσαμε μια ροή εισόδου με όνομα. Σημειώστε τη γραμμή,

 byte() array = stream.readAllBytes();

Εδώ, η readAllBytes()μέθοδος επιστρέφει όλα τα δεδομένα από τη ροή και αποθηκεύει στον πίνακα byte.

Σημείωση : Χρησιμοποιήσαμε τη Arrays.toString()μέθοδο για τη μετατροπή ολόκληρου του πίνακα σε συμβολοσειρά.

Παράδειγμα 2: Μετατροπή InputStream σε 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(); ) ) )

Παραγωγή

 Ροή εισόδου: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

Στο παραπάνω παράδειγμα, δημιουργήσαμε μια ροή εισόδου από την είσοδο πίνακα. Παρατηρήστε την έκφραση,

 stream.read(array, 0, array.length)

Εδώ, όλα τα στοιχεία από τη ροή αποθηκεύονται σε πίνακα, ξεκινώντας από το ευρετήριο 0 . Στη συνέχεια αποθηκεύουμε όλα τα στοιχεία του πίνακα στη ροή εξόδου που ονομάζεται έξοδος.

 output.write(array, 0, i)

Τέλος, καλούμε τη toByteArray()μέθοδο της ByteArrayOutputStreamκλάσης, για να μετατρέψουμε τη ροή εξόδου σε έναν πίνακα byte με όνομα

ενδιαφέροντα άρθρα...