Program Java untuk Mengubah InputStream menjadi Byte Array

Dalam contoh ini, kita akan belajar mengubah aliran input menjadi array byte di Java.

Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman Java berikut:

  • Kelas InputStream Java
  • Kelas ByteArrayInputStream Java
  • Kelas ByteArrayOutputStream Java

Contoh 1: Program Java untuk Mengonversi InputStream ke 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(); ) ) )

Keluaran

 Arus Input: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

Dalam contoh di atas, kami telah membuat aliran input bernama aliran. Perhatikan garisnya,

 byte() array = stream.readAllBytes();

Di sini, readAllBytes()metode mengembalikan semua data dari aliran dan disimpan dalam array byte.

Catatan : Kami telah menggunakan Arrays.toString()metode untuk mengonversi semua array menjadi string.

Contoh 2: Ubah InputStream ke Byte Array menggunakan Output Stream

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

Keluaran

 Arus Input: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

Dalam contoh di atas, kami telah membuat aliran input dari input array. Perhatikan ekspresinya,

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

Di sini, semua elemen dari aliran disimpan dalam array, mulai dari indeks 0 . Kami kemudian menyimpan semua elemen array ke aliran keluaran bernama keluaran.

 output.write(array, 0, i)

Akhirnya, kami memanggil toByteArray()metode ByteArrayOutputStreamkelas, untuk mengubah aliran keluaran menjadi array byte bernama data.

Artikel yang menarik...