Java ByteArrayOutputStream (με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθουμε για το Java ByteArrayOutputStream και τις μεθόδους του με τη βοήθεια παραδειγμάτων.

Η ByteArrayOutputStreamκλάση του java.ioπακέτου μπορεί να χρησιμοποιηθεί για την εγγραφή μιας σειράς δεδομένων εξόδου (σε byte).

Επεκτείνει την OutputStreamαφηρημένη τάξη.

Σημείωση : ByteArrayOutputStreamΔιατηρεί έναν εσωτερικό πίνακα byte για την αποθήκευση των δεδομένων.

Δημιουργήστε ένα ByteArrayOutputStream

Για να δημιουργήσουμε μια ροή εξόδου πίνακα byte, πρέπει java.io.ByteArrayOutputStreamπρώτα να εισαγάγουμε το πακέτο. Μόλις εισαγάγουμε το πακέτο, εδώ είναι πώς μπορούμε να δημιουργήσουμε μια ροή εξόδου.

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

Εδώ, δημιουργήσαμε μια ροή εξόδου που θα γράψει δεδομένα σε έναν πίνακα byte με προεπιλεγμένο μέγεθος 32 byte. Ωστόσο, μπορούμε να αλλάξουμε το προεπιλεγμένο μέγεθος του πίνακα.

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

Εδώ, το μέγεθος καθορίζει το μήκος του πίνακα.

Μέθοδοι του ByteArrayOutputStream

Η ByteArrayOutputStreamτάξη παρέχει την εφαρμογή των διαφορετικών μεθόδων που υπάρχουν στην OutputStreamτάξη.

μέθοδος ()

  • write(int byte) - γράφει το καθορισμένο byte στη ροή εξόδου
  • write(byte() array) - γράφει τα byte από τον καθορισμένο πίνακα στη ροή εξόδου
  • write(byte() arr, int start, int length) - γράφει τον αριθμό των byte ίσο με το μήκος της ροής εξόδου από έναν πίνακα που ξεκινά από την αρχή της θέσης
  • writeTo(ByteArrayOutputStream out1) - γράφει ολόκληρα τα δεδομένα της τρέχουσας ροής εξόδου στην καθορισμένη ροή εξόδου

Παράδειγμα: ByteArrayOutputStream για συγγραφή δεδομένων

 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(); ) ) ) 

Παραγωγή

 Ροή εξόδου: Αυτή είναι μια γραμμή κειμένου μέσα στη συμβολοσειρά. 

Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει μια ροή εξόδου συστοιχίας byte που ονομάζεται έξοδος.

 ByteArrayOutputStream output = new ByteArrayOutputStream(); 

Για να γράψουμε τα δεδομένα στη ροή εξόδου, χρησιμοποιήσαμε τη write()μέθοδο.

Σημείωση : Η getBytes()μέθοδος που χρησιμοποιείται στο πρόγραμμα μετατρέπει μια συμβολοσειρά σε μια σειρά byte.

Πρόσβαση στα δεδομένα από το ByteArrayOutputStream

  • toByteArray() - επιστρέφει τον πίνακα που υπάρχει μέσα στη ροή εξόδου
  • toString() - επιστρέφει όλα τα δεδομένα της ροής εξόδου σε μορφή συμβολοσειράς

Για παράδειγμα,

 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

Μέθοδοι Περιγραφές
size() επιστρέφει το μέγεθος του πίνακα στη ροή εξόδου
flush() καθαρίζει τη ροή εξόδου

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

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