Kelas Java InputStream: Memahami Metode Inti dan Contoh Praktis
Java InputStream Class
Tutorial ini mengungkapkan misteri kelas Java InputStream, mendetailkan metode utamanya, subclass kunci, dan contoh praktis menggunakan FileInputStream.
Dalam paket java.io, InputStream adalah kelas super abstrak yang mewakili aliran masukan berorientasi byte. Meskipun Anda tidak dapat membuat instance-nya secara langsung, subclass konkretnya menyediakan mekanisme yang kuat untuk membaca data dari file, array byte, dan sumber lainnya.
Subclass Utama InputStream
Penggunaan praktis InputStream bergantung pada subclass-nya. Yang paling umum meliputi:
FileInputStream – membaca byte dari file di disk ByteArrayInputStream – membaca byte dari array byte di memori ObjectInputStream – mendeserialisasi objek dari aliran masukan

Kita akan menjelajahi setiap subclass dalam tutorial terpisah, namun untuk saat ini mari kita fokus pada FileInputStream.
Membuat InputStream
Untuk membuat InputStream, impor kelas terlebih dahulu:
import java.io.InputStream;
Karena InputStream adalah abstrak, Anda membuat instance salah satu subclass-nya, misalnya:
InputStream stream = new FileInputStream("example.txt");
Perhatikan bahwa Anda dapat mengganti FileInputStream dengan subclass konkret lainnya.
Metode Inti InputStream
Berikut adalah metode-metode yang umum di semua implementasi InputStream:
int read() – membaca satu byte, mengembalikannya sebagai int atau -1 jika akhir aliran tercapai. int read(byte[] b) – mengisi array byte yang disediakan dengan data dan mengembalikan jumlah byte yang dibaca. int available() – melaporkan jumlah byte yang dapat dibaca tanpa pemblokiran. void mark(int readlimit) – menandai posisi saat ini dalam aliran untuk direset nanti. void reset() – mengembalikan aliran ke tanda terbaru. boolean markSupported() – menunjukkan apakah mark dan reset didukung. long skip(long n) – melewati dan membuang n byte masukan. void close() – menutup aliran dan melepaskan sumber daya sistem.
Contoh Praktis: Membaca File dengan FileInputStream
Asumsikan kita memiliki file teks bernama input.txt yang berisi:
This is a line of text inside the file.
Di bawah adalah program Java lengkap yang membuka file, melaporkan jumlah byte yang tersedia, membaca konten ke dalam array byte, dan mencetak hasilnya.
import java.io.FileInputStream; import java.io.InputStream; public class Main { public static void main(String[] args) { byte[] buffer = new byte[100]; try (InputStream input = new FileInputStream("input.txt")) { System.out.println("Available bytes: " + input.available()); int bytesRead = input.read(buffer); System.out.println("Bytes read: " + bytesRead); String data = new String(buffer, 0, bytesRead); System.out.println("Data read from the file:"); System.out.println(data); } catch (Exception e) { e.printStackTrace(); } } }
Output
Available bytes: 39 Bytes read: 39 Data read from the file: This is a line of text inside the file.
Contoh ini menunjukkan cara bekerja dengan FileInputStream dalam blok try-with-resources, memastikan aliran ditutup secara otomatis bahkan jika pengecualian terjadi.
Untuk membahas lebih dalam API, lihat dokumentasi resmi Java: InputStream Javadoc.