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 ByteArrayOutputStream
kelas, untuk mengubah aliran keluaran menjadi array byte bernama data.