Rabu, 14 Maret 2012

Stream I/O

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

Tidak ada komentar:

Posting Komentar