Menguasai Java FileInputStream: Panduan Praktis dengan Contoh Kode
Java FileInputStream Class
Tutorial ini memandu Anda melalui FileInputStream Java, mencakup metode inti, penggunaan praktis, dan contoh dunia nyata.
Kelas FileInputStream, yang merupakan bagian dari paket java.io, memungkinkan Anda membaca data byte mentah dari file. Ia memperluas kelas abstrak InputStream, menyediakan implementasi konkret untuk I/O file.
Sebelum memulai FileInputStream, pastikan Anda nyaman dengan dasar-dasar penanganan file Java.
Membuat FileInputStream
Impor kelas dan buat instance dengan jalur file atau objek File.
1. Menggunakan jalur file
FileInputStream input = new FileInputStream("path/to/file.txt");
Ini membuka aliran yang terikat pada file pada jalur yang ditentukan.
2. Menggunakan objek File
File file = new File("file.txt"); FileInputStream input = new FileInputStream(file);
Metode Utama FileInputStream
Kelas ini mengimplementasikan semua metode abstrak dari InputStream dan menambahkan beberapa miliknya. Berikut adalah yang paling sering digunakan.
read()
int read() – membaca satu byte dan mengembalikannya sebagai int (atau -1 pada akhir file). int read(byte[] b) – mengisi array yang disediakan dengan byte. int read(byte[] b, int off, int len) – membaca hingga len byte ke dalam b mulai dari offset off.
Contoh: membaca file teks byte demi byte.
import java.io.FileInputStream; public class Main { public static void main(String[] args) { try (FileInputStream input = new FileInputStream("input.txt")) { System.out.println("Data in the file:"); int byteRead; while ((byteRead = input.read()) != -1) { System.out.print((char) byteRead); } } catch (Exception e) { e.printStackTrace(); } } }
Output
Data in the file: This is a line of text inside the file.
available()
Mengembalikan jumlah byte yang dapat dibaca tanpa pemblokiran.
try (FileInputStream input = new FileInputStream("input.txt")) { System.out.println("Available at start: " + input.available()); input.read(); input.read(); input.read(); System.out.println("Available after 3 reads: " + input.available()); }
Output
Available at start: 39 Available after 3 reads: 36
skip()
Maju aliran dengan sejumlah byte yang ditentukan, membuangnya.
try (FileInputStream input = new FileInputStream("input.txt")) { input.skip(5); // skip "This " int byteRead; while ((byteRead = input.read()) != -1) { System.out.print((char) byteRead); } }
Output
is a line of text inside the file.
close()
Menutup aliran dan melepaskan sumber daya sistem. Menggunakan blok try‑with‑resources (seperti ditampilkan di atas) memastikan close() dipanggil secara otomatis.
Metode FileInputStream Lainnya
| Method | Description |
finalize() | Memastikan close() dipanggil sebelum pemesinan sampah. |
getChannel() | Mengembalikan FileChannel yang terkait dengan aliran. |
getFD() | Menyediakan deskriptor file yang mendasari. |
mark(int readlimit) | Menandai posisi saat ini untuk direset nanti. |
reset() | Mengatur ulang aliran ke posisi tertanda terakhir. |
Untuk wawasan lebih dalam, konsultasikan dokumentasi resmi Java: Java FileInputStream (official Java documentation).