java
Dalam tutorial ini, kita akan belajar tentang Java ByteArrayInputStream dan metodenya dengan bantuan contoh.
ByteArrayInputStream
kelas java.io
package dapat digunakan untuk membaca array data input (dalam byte).
Ini memperluas InputStream
kelas abstrak.
Catatan :Di ByteArrayInputStream
, aliran input dibuat menggunakan larik byte. Ini mencakup larik internal untuk menyimpan data larik byte tertentu.
Untuk membuat aliran input array byte, kita harus mengimpor java.io.ByteArrayInputStream
paket dulu. Setelah kita mengimpor paket, berikut adalah cara 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
Himpunan. 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 start posisi.
ByteArrayInputStream
class menyediakan implementasi untuk berbagai metode yang ada di InputStream
kelas.
read()
- membaca satu byte dari array yang ada di aliran inputread(byte[] array)
- membaca byte dari aliran input dan menyimpannya dalam larik yang ditentukanread(byte[] array, int start, int length)
- membaca jumlah byte yang sama dengan panjang dari aliran dan menyimpan dalam larik yang ditentukan mulai dari posisi start
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
The bytes read from the input stream: 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.
Untuk mendapatkan jumlah byte yang tersedia di aliran input, kita dapat menggunakan available()
metode. Misalnya,
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
Available bytes at the beginning: 4 Available bytes at the end: 2
Pada contoh di atas,
available()
metode untuk memeriksa jumlah byte yang tersedia di aliran input.read()
metode 2 kali untuk membaca 2 byte dari aliran input.
Untuk membuang dan melewati jumlah byte yang ditentukan, kita dapat menggunakan skip()
metode. Misalnya,
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
Input stream after skipping 2 bytes: 3, 4,
Pada contoh di atas, kita telah menggunakan skip() metode untuk melewatkan 2 byte data dari aliran input. Oleh karena itu 1 dan 2 tidak dibaca dari aliran input.
Untuk menutup aliran input, kita dapat menggunakan close()
metode.
Namun, close()
metode tidak berpengaruh dalam ByteArrayInputStream
kelas. Kita dapat menggunakan metode kelas ini bahkan setelah close()
metode ini dipanggil.
Metode | Deskripsi |
---|---|
finalize() | memastikan bahwa close() metode ini disebut |
mark() | menandai posisi dalam aliran input hingga data yang telah dibaca |
reset() | mengembalikan kontrol ke titik di aliran input tempat tanda ditetapkan |
markSupported() | memeriksa apakah aliran input mendukung mark() dan reset() |
Untuk mempelajari lebih lanjut, kunjungi Java ByteArrayInputStream (dokumentasi resmi Java).
java
Kelas Java ObjectInputStream Dalam tutorial ini, kita akan belajar tentang Java ObjectOutputStream dan metodenya dengan bantuan contoh. ObjectInputStream kelas java.io package dapat digunakan untuk membaca objek yang sebelumnya ditulis oleh ObjectOutputStream . Ini memperluas InputStream kelas abs
Kelas Java PrintStream Dalam tutorial ini, kita akan belajar tentang kelas Java PrintStream dan metode print() dan printf() dengan bantuan contoh. PrintStream kelas java.io package dapat digunakan untuk menulis data keluaran dalam bentuk (teks) yang dapat dibaca secara umum alih-alih byte. Ini mem
Kelas Pembaca Java Dalam tutorial ini, kita akan belajar tentang Java Reader, subclass-nya dan metodenya dengan bantuan sebuah contoh. Reader kelas java.io package adalah superclass abstrak yang mewakili aliran karakter. Sejak Reader adalah kelas abstrak, itu tidak berguna dengan sendirinya. Namun
Kelas InputStreamReader Java Dalam tutorial ini, kita akan belajar tentang Java InputStreamReader dan metodenya dengan bantuan contoh. InputStreamReader kelas java.io package dapat digunakan untuk mengubah data dalam byte menjadi data dalam karakter. Ini memperluas kelas abstrak Reader . InputS