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

Menguasai Java BufferedInputStream: Pembacaan Byte Efisien dan Metode Lanjutan

Java BufferedInputStream Class Overview

Tutorial ini membahas kelas Java BufferedInputStream, metode utamanya, dan contoh praktis untuk meningkatkan kinerja I/O file.

Kelas BufferedInputStream dalam paket java.io meningkatkan aliran masukan tingkat byte dengan menambahkan buffer internal, memungkinkan pembacaan data yang lebih cepat dan efisien.

Ia memperluas kelas abstrak InputStream.

Menguasai Java BufferedInputStream: Pembacaan Byte Efisien dan Metode Lanjutan

Bagaimana BufferedInputStream Bekerja

BufferedInputStream memelihara buffer internal sebesar 8.192 byte secara default. Saat operasi baca diminta, blok byte diambil dari aliran dasar (biasanya file) dan disimpan dalam buffer ini. Pemanggilan baca berikutnya kemudian mengonsumsi byte dari buffer hingga habis, titik di mana blok lain dimuat. Hal ini mengurangi I/O disk yang mahal dan mempercepat konsumsi data.


Membuat BufferedInputStream

Untuk membuat BufferedInputStream, impor kelas terlebih dahulu:

import java.io.BufferedInputStream; import java.io.FileInputStream; 

Kemudian, buat instance dengan membungkus aliran tingkat rendah seperti FileInputStream:

FileInputStream file = new FileInputStream("example.txt"); BufferedInputStream buffer = new BufferedInputStream(file); 

Secara opsional, tentukan ukuran buffer kustom:

int bufferSize = 16_384; // 16 KB BufferedInputStream buffer = new BufferedInputStream(file, bufferSize); 

Semakin besar buffer, semakin sedikit akses disk yang diperlukan—berguna untuk file besar atau aliran jaringan.


Metode Utama BufferedInputStream

read()

Contoh: Membaca file teks byte demi byte dan mencetaknya ke konsol.

import java.io.BufferedInputStream; import java.io.FileInputStream; public class Main { public static void main(String[] args) { try (BufferedInputStream in = new BufferedInputStream(new FileInputStream("input.txt"))) { int byteRead; while ((byteRead = in.read()) != -1) { System.out.print((char) byteRead); } } catch (Exception e) { e.printStackTrace(); } } } 

Output:

This is a line of text inside the file. 

available()

Metode available() melaporkan jumlah byte yang dapat dibaca dari aliran tanpa pemblokiran. Ini dapat membantu mengukur progres saat memproses aliran besar.

FileInputStream file = new FileInputStream("input.txt"); BufferedInputStream buffer = new BufferedInputStream(file); System.out.println("Bytes available: " + buffer.available()); // ... read data System.out.println("Bytes remaining: " + buffer.available()); buffer.close(); 

skip(long n)

Gunakan skip() untuk melewati sejumlah byte tertentu. Mengembalikan jumlah byte yang sebenarnya dilewati, yang mungkin lebih sedikit dari yang diminta jika akhir aliran tercapai.

buffer.skip(5); // skip first 5 bytes 

close()

Selalu tutup aliran (secara ideal menggunakan blok try-with-resources) untuk melepaskan sumber daya sistem. Setelah ditutup, aliran tidak dapat digunakan lagi.


Metode Lainnya yang Perlu Diketahui

MethodDescription
mark(int readLimit)Menandai posisi saat ini dalam aliran. Pemanggilan berikutnya ke reset() akan kembali ke titik ini, asalkan tidak lebih dari readLimit byte telah dibaca.
reset()Mengubah posisi aliran ke posisi terakhir yang ditandai.

Untuk referensi lengkap, konsultasikan dokumentasi Java resmi.

java

  1. Memahami Kata Kunci final Java: Variabel, Metode, dan Kelas
  2. Operator instanceof Java: Panduan Lengkap
  3. Memahami Kelas Bersarang Statis Java: Penggunaan, Perbedaan, dan Contoh
  4. Menguasai Kelas Dalam Anonim Java: Definisi, Sintaks, dan Contoh Praktis
  5. Pola Singleton Java Dijelaskan: Cara Menerapkan dan Menggunakannya dengan Aman
  6. Menguasai Refleksi Java: Memeriksa Kelas, Metode, dan Field pada Waktu Eksekusi
  7. Menguasai Java ObjectOutputStream: Serialisasi, Metode, dan Contoh Praktis
  8. Menguasai Java BufferedReader: Penanganan Aliran Karakter Efisien
  9. Menguasai Java Generics – Membangun Kode yang Dapat Digunakan Kembali dan Aman Tipe
  10. Pengoperasian File Java dengan java.io – Pembuatan, Pembacaan, Penulisan & Penghapusan