Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Java ByteArrayInputStream: Panduan Praktis Membaca Array Byte

Java ByteArrayInputStream

Artikel ini menjelaskan cara menggunakan ByteArrayInputStream Java untuk membaca data dari array byte, mencakup konstruktor, metode kunci, dan contoh praktis.

Apa itu ByteArrayInputStream?

Kelas ByteArrayInputStream, yang merupakan bagian dari paket java.io, mengimplementasikan InputStream dan memungkinkan Anda memperlakukan array byte sebagai aliran masukan. Secara internal, ia menyimpan salinan array yang disediakan, memungkinkan akses acak dan pembacaan yang efisien.

Java ByteArrayInputStream: Panduan Praktis Membaca Array Byte

Catatan: Aliran membaca dari array itu sendiri, bukan dari sumber eksternal, sehingga semua operasi berjalan di memori.


Membuat ByteArrayInputStream

Impor java.io.ByteArrayInputStream dan buat instance. Anda dapat membaca seluruh array atau irisan.

ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr);
ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr, int start, int length);

Konstruktor kedua membaca length byte mulai dari indeks start.


Metode Inti

read()

Contoh: Membaca Byte

import java.io.ByteArrayInputStream; public class Main { public static void main(String[] args) { byte[] array = {1, 2, 3, 4}; try (ByteArrayInputStream input = new ByteArrayInputStream(array)) { System.out.print("Bytes read: "); int value; while ((value = input.read()) != -1) { System.out.print(value + ", "); } System.out.println(); } catch (Exception e) { e.printStackTrace(); } } } 

Output

Bytes read: 1, 2, 3, 4, 

available()

Mengembalikan jumlah byte yang masih tersedia tanpa pemblokiran.

import java.io.ByteArrayInputStream; public class Main { public static void main(String[] args) { byte[] array = {1, 2, 3, 4}; try (ByteArrayInputStream input = new ByteArrayInputStream(array)) { System.out.println("Initially: " + input.available()); input.read(); input.read(); System.out.println("After 2 reads: " + input.available()); } catch (Exception e) { e.printStackTrace(); } } } 

Output

Initially: 4 After 2 reads: 2

skip()

Maju posisi aliran dengan sejumlah byte yang diminta.

import java.io.ByteArrayInputStream; public class Main { public static void main(String[] args) { byte[] array = {1, 2, 3, 4}; try (ByteArrayInputStream input = new ByteArrayInputStream(array)) { input.skip(2); System.out.print("After skip: "); int value; while ((value = input.read()) != -1) { System.out.print(value + ", "); } } catch (Exception e) { e.printStackTrace(); } } } 

Output

After skip: 3, 4, 

close()

Menutup ByteArrayInputStream adalah no-op; aliran masih dapat digunakan setelahnya. Metode ini hadir hanya untuk kompatibilitas API.


Metode Lainnya yang Berguna

MethodDescription
mark(int readlimit)Menandai posisi saat ini.
reset()Kembali ke posisi terakhir yang ditandai.
markSupported()Selalu mengembalikan true.
finalize()Memastikan sumber daya dilepaskan (tidak ada efek untuk kelas ini).

Untuk API lengkap, lihat dokumentasi resmi Java.

java

  1. Teknik Salin Array Java: Panduan Lengkap
  2. Memahami Kata Kunci final Java: Variabel, Metode, dan Kelas
  3. Operator instanceof Java: Panduan Lengkap
  4. Memahami Kelas Bersarang Statis Java: Penggunaan, Perbedaan, dan Contoh
  5. Menguasai Kelas Dalam Anonim Java: Definisi, Sintaks, dan Contoh Praktis
  6. Pola Singleton Java Dijelaskan: Cara Menerapkan dan Menggunakannya dengan Aman
  7. Menguasai Refleksi Java: Memeriksa Kelas, Metode, dan Field pada Waktu Eksekusi
  8. Menguasai Java ObjectOutputStream: Serialisasi, Metode, dan Contoh Praktis
  9. Menguasai Java Scanner: Panduan Komprehensif dengan Contoh Praktis
  10. Menguasai Java Generics – Membangun Kode yang Dapat Digunakan Kembali dan Aman Tipe