Java ByteArrayOutputStream (Dengan Contoh)

Dalam tutorial ini, kita akan belajar mengenai Java ByteArrayOutputStream dan kaedahnya dengan bantuan contoh.

The ByteArrayOutputStreamgolongan orang java.iopakej boleh digunakan untuk menulis pelbagai data output (dalam bait).

Ia meluaskan OutputStreamkelas abstrak.

Catatan : Dalam ByteArrayOutputStreammengekalkan susunan bait dalaman untuk menyimpan data.

Buat ByteArrayOutputStream

Untuk membuat aliran output array byte, kita mesti mengimport java.io.ByteArrayOutputStreampakej terlebih dahulu. Sebaik sahaja kami mengimport pakej, berikut adalah bagaimana kita dapat membuat aliran output.

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

Di sini, kami telah membuat aliran output yang akan menulis data ke pelbagai bait dengan ukuran lalai 32 bait. Walau bagaimanapun, kami dapat mengubah ukuran lalai bagi lalai.

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

Di sini, ukuran menentukan panjang array.

Kaedah ByteArrayOutputStream

The ByteArrayOutputStreamkelas menyediakan pelaksanaan kaedah yang berbeza yang terdapat di dalam OutputStreamkelas.

tulis () Kaedah

  • write(int byte) - menulis bait yang ditentukan ke aliran output
  • write(byte() array) - menulis bait dari array yang ditentukan ke aliran output
  • write(byte() arr, int start, int length) - menulis bilangan bait sama dengan panjang ke aliran output dari array yang bermula dari kedudukan permulaan
  • writeTo(ByteArrayOutputStream out1) - menulis keseluruhan data aliran output semasa ke aliran output yang ditentukan

Contoh: ByteArrayOutputStream untuk menulis data

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

Pengeluaran

 Aliran output: Ini adalah sebaris teks di dalam rentetan. 

Dalam contoh di atas, kami telah membuat aliran output array byte bernama output.

 ByteArrayOutputStream output = new ByteArrayOutputStream(); 

Untuk menulis data ke aliran output, kami telah menggunakan write()kaedahnya.

Catatan : getBytes()Kaedah yang digunakan dalam program mengubah rentetan menjadi array byte.

Akses Data dari ByteArrayOutputStream

  • toByteArray() - mengembalikan array yang ada di dalam aliran output
  • toString() - mengembalikan keseluruhan data aliran output dalam bentuk rentetan

Sebagai contoh,

 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

Kaedah Penerangan
size() mengembalikan ukuran array dalam aliran output
flush() membersihkan aliran output

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

Artikel menarik...