Dalam tutorial ini, kita akan belajar tentang Java ByteArrayInputStream dan metodenya dengan bantuan contoh.
The ByteArrayInputStream
kelas dari java.io
paket dapat digunakan untuk membaca array input data (dalam byte).
Ini memperluas InputStream
kelas abstrak.
Catatan : Dalam ByteArrayInputStream
, aliran input dibuat menggunakan array byte. Ini termasuk array internal untuk menyimpan data dari array byte tertentu.
Buat ByteArrayInputStream
Untuk membuat aliran input array byte, kita harus mengimpor java.io.ByteArrayInputStream
paket terlebih dahulu. Setelah kami mengimpor paket, berikut adalah cara kami membuat aliran input.
// Creates a ByteArrayInputStream that reads entire array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr);
Di sini, kami telah membuat aliran input yang membaca seluruh data dari arr
array. Namun, kita juga dapat membuat aliran input yang hanya membaca beberapa data dari larik.
// Creates a ByteArrayInputStream that reads a portion of array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr, int start, int length);
Di sini aliran input membaca jumlah byte yang sama dengan panjang dari array mulai dari posisi awal.
Metode ByteArrayInputStream
The ByteArrayInputStream
kelas menyediakan implementasi untuk metode yang berbeda hadir di InputStream
kelas.
read () Metode
read()
- membaca single byte dari array yang ada di input streamread(byte() array)
- membaca byte dari aliran input dan menyimpannya dalam array yang ditentukanread(byte() array, int start, int length)
- membaca jumlah byte yang sama dengan panjang dari aliran dan menyimpannya dalam array yang ditentukan mulai dari posisi awal
Contoh: ByteArrayInputStream untuk membaca data
import java.io.ByteArrayInputStream; public class Main ( public static void main(String() args) ( // Creates an array of byte byte() array = (1, 2, 3, 4); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); System.out.print("The bytes read from the input stream: "); for(int i= 0; i < array.length; i++) ( // Reads the bytes int data = input.read(); System.out.print(data + ", "); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Keluaran
Byte yang dibaca dari aliran input: 1, 2, 3, 4,
Dalam contoh di atas, kami telah membuat aliran input array byte bernama input
.
ByteArrayInputStream input = new ByteArrayInputStream(array);
Di sini, aliran input mencakup semua data dari larik yang ditentukan. Untuk membaca data dari aliran input, kami telah menggunakan read()
metode ini.
tersedia () Metode
Untuk mendapatkan jumlah byte yang tersedia di input stream, kita bisa menggunakan available()
metode ini. Sebagai contoh,
import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( // Creates an array of bytes byte() array = ( 1, 2, 3, 4 ); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); // Returns the available number of bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 2 bytes from the input stream input.read(); input.read(); // Returns the available number of bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Keluaran
Byte yang tersedia di awal: 4 Byte yang tersedia di akhir: 2
Dalam contoh di atas,
- Kami telah menggunakan
available()
metode ini untuk memeriksa jumlah byte yang tersedia di aliran input. - Kami kemudian menggunakan
read()
metode ini 2 kali untuk membaca 2 byte dari aliran input. - Sekarang, setelah membaca 2 byte, kami telah memeriksa byte yang tersedia. Kali ini byte yang tersedia berkurang 2.
lewati () Metode
Untuk membuang dan melewatkan jumlah byte yang ditentukan, kita dapat menggunakan skip()
metode ini. Sebagai contoh,
import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( // Create an array of bytes byte() array = ( 1, 2, 3, 4 ); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); // Using the skip() method input.skip(2); System.out.print("Input stream after skipping 2 bytes: "); int data = input.read(); while (data != -1) ( System.out.print(data + ", "); data = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Keluaran
Aliran input setelah melewati 2 byte: 3, 4,
Dalam contoh di atas, kami telah menggunakan metode skip () untuk melewati 2 byte data dari aliran input. Oleh karena itu 1 dan 2 tidak dibaca dari aliran input.
close () Metode
Untuk menutup aliran input, kita bisa menggunakan close()
metode.
Namun, close()
metode tersebut tidak berpengaruh di ByteArrayInputStream
kelas. Kita dapat menggunakan metode kelas ini bahkan setelah close()
metode tersebut dipanggil.
Metode Lain Dari ByteArrayInputStream
Metode | Deskripsi |
---|---|
finalize() | memastikan bahwa close() metode tersebut dipanggil |
mark() | menandai posisi dalam aliran input yang datanya telah dibaca |
reset() | mengembalikan kontrol ke titik dalam aliran input tempat tanda ditetapkan |
markSupported() | memeriksa apakah aliran input mendukung mark() danreset() |
Untuk mempelajari lebih lanjut, kunjungi Java ByteArrayInputStream (dokumentasi resmi Java).