Java ByteArrayOutputStream (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang Java ByteArrayOutputStream dan metodenya dengan bantuan contoh.

The ByteArrayOutputStreamkelas dari java.iopaket dapat digunakan untuk menulis array output data (dalam byte).

Ini memperluas OutputStreamkelas abstrak.

Catatan : Dalam ByteArrayOutputStreammemelihara larik byte internal untuk menyimpan data.

Buat ByteArrayOutputStream

Untuk membuat aliran keluaran array byte, kita harus mengimpor java.io.ByteArrayOutputStreampaket terlebih dahulu. Setelah kami mengimpor paket, berikut adalah cara kami membuat aliran keluaran.

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

Di sini, kami telah membuat aliran keluaran yang akan menulis data ke array byte dengan ukuran default 32 byte. Namun, kami dapat mengubah ukuran default dari array.

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

Di sini, size menentukan panjang array.

Metode ByteArrayOutputStream

The ByteArrayOutputStreamkelas menyediakan implementasi metode yang berbeda hadir dalam OutputStreamkelas.

Write () Metode

  • write(int byte) - menulis byte yang ditentukan ke aliran keluaran
  • write(byte() array) - menulis byte dari larik yang ditentukan ke aliran keluaran
  • write(byte() arr, int start, int length) - menulis jumlah byte yang sama dengan panjang aliran keluaran dari larik mulai dari posisi awal
  • writeTo(ByteArrayOutputStream out1) - menulis seluruh data dari aliran keluaran saat ini ke aliran keluaran 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(); ) ) ) 

Keluaran

 Aliran keluaran: Ini adalah baris teks di dalam string. 

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

 ByteArrayOutputStream output = new ByteArrayOutputStream(); 

Untuk menulis data ke aliran keluaran, kami telah menggunakan write()metode.

Catatan : getBytes()Metode yang digunakan dalam program ini mengubah string menjadi array byte.

Akses Data dari ByteArrayOutputStream

  • toByteArray() - mengembalikan larik yang ada di dalam aliran keluaran
  • toString() - mengembalikan seluruh data aliran keluaran dalam bentuk string

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

Metode Deskripsi
size() mengembalikan ukuran larik di aliran keluaran
flush() membersihkan aliran keluaran

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

Artikel yang menarik...