Konsep dasar Stream I/O :
Stream adalah suatu abstraksi untuk data input dan output, tidak peduli dari mana input berasal atau kemana output akan ditujukan.
Tipe-Tipe Stream yang sering di gunakan:
1. Stream Karakter dan Stream Byte
Stream Karakter
- Keadaan file atau device untuk karakter Unicode
- Superclass untuk semua class-class untuk stream karakter :
* Class Reader
* Class Writer
* Kedua class tersebut adalah abstrak
- Class-class yang terdapat dalam stream karakter :
BufferedReader
· BufferedWriter
· FileReader
· FileWriter
· InputStreamReader
· OutputStreamReader
Dll
Stream Byte
- Digunakan untuk data biner
- Class-class root untuk stream byte :
* Class InputStream
* Class OutputStream
* Kedua class tersebut adalah abstrak
- Class-class yang terdapat dalam stream byte:
BufferedInputStream
· BufferedOutputStream
· DataInputStream
· DataOutputStream
· FileInputStream
· FileOutputStream
· InputStream
· OutputStream
· Dll
2. Input dan Output Stream
Stream juga dikategorikan berdasarkan apakah mereka digunakan untuk membaca atau
menulis stream.
Input Stream
Beberapa kelas turunan dari
InputStream
dapat dirangkum dalam tabel di bawah ini :
Kelas | Kegunaan | Argumen yang dibutuhkan untuk membuat objek |
ByteArrayInputStream | Menggunakan buffer pada memori sebagai aliran input | Buffer yang akan digunakan sebagai aliran input |
StringBufferInputStream | Mengubah string menjadi InputStream | Suatu String (di dalamnya sebenarnya menggunakan StringBuffer ) |
FileInputStream | Untuk membaca informasi dari dalam file | String yang berupa nama suatu file, atau objek bertipe File atau FileDescriptor |
PipedInputStream | Menghasilkan data yang ditulis oleh PipedOutputStream . Mengimplementasi konsep "piping". Bisa digunakan untuk multi-threading | Objek PipedOutputStream |
SequenceInputStream | Menggabungkan dua atau lebih InputStream menjadi satu InputStream | Dua atau lebih objek bertipe InputStream atau kontainer bertipe Enumeration yang berisi InputStream yang akan digabungkan |
FilterInputStream | Kelas abstrak yang merupakan interface dari beberapa kelas bantu untuk menggunakan InputStream lain | |
Output Stream
Beberapa kelas turunan dari
OutputStream
dapat dirangkum dalam tabel di bawah ini :
Kelas | Kegunaan | Argumen yang dibutuhkan untuk membuat objek |
ByteArrayOutputStream | Membuat buffer dalam memori. Semua data yang kita kirim akan disimpan di memori ini. | Opsional untuk memberikan besar buffer yang akan disiapkan |
FileOutputStream | Untuk menulis informasi ke dalam file | String yang berupa nama suatu file, atau objek bertipe File atau FileDescriptor |
PipedOutputStream | Informasi yang kita kirim di aliran output ini akan berakhir pada objek bertipe PipedInputStream . Mengimplementasi konsep "piping". Bisa digunakan untuk multi-threading | Objek PipedInputStream |
FilterOutputStream | Kelas abstrak yang merupakan interface dari beberapa kelas bantu untuk menggunakan OutputStream lain. | |
Contoh Program
contoh dibawah ini menggunakan class FileInputStream dan FileOutputStream untuk membaca file khusus dan mengcopy isi dari file ini ke file yang lain.
Contoh berikutnya menggunakan class PushbackInputStream yang memanfaatkan
sebuah object FileInputStream dan class PrintStream.
modul JENI-Intro2-Bab12-Stream IO Lanjut