Rabu, 25 Juli 2012

About IO Stream


     What is IO Stream ?
IOStream merupakan sumber input atau output tujuan. Sebuah stream dapat mewakili berbagai macam sumber dan tujuan, termasuk file disk, perangkat, program lain, dan array memori. IOStream mendukung banyak jenis data, termasuk byte sederhana, tipe data primitif, karakter lokal, dan objek. Beberapa aliran sekedar menyampaikan data, orang lain memanipulasi dan mengubah data dengan cara yang bermanfaat. Kira-kira dapat dianalogikan seperti ini.
Alur program menggunakan inputstream untuk membaca data dari sebuah sumber
Alur program menggunakan output stream untuk menulis data ke tujuan

Tipe-tipe stream yang digunakan

       1.         Stream Karakter dan Byte 

            Secara umum ada dua tipe dari stream, yaitu stream karakter dan byte. Kita hanya mengulang perbedaan mendasar antara keduanya. Stream byte adalah abstraksi file atau alat untuk data biner sedangkan stream karakter adalah untuk karakter Unicode.

       2.         Stream Input dan Output

                  Class InputStream dan class Reader adalah superclass-superclass dari semua input stream. Class OutputStream dan class Writer adalah class-class root dari semua output stream. Input stream juga dikenal sebagai stream sumber (source stream) sejak kita memperoleh informasi dari stream ini. sementara itu output stream disebut juga stream hasil(sink stream).

       3.         Node dan Filter Stream    
                
                  Stream node adalah sebuah stream dengan fungsi dasar berupa fungsi membaca atau menulis dari sebuah lokasi khusus seperti pada disk atau dari jaringan. Filter Stream adalah suatu stream yang diletakkan pada layer stream node diantara threads atau proses untuk menyediakan fungsi tambahan yang tidak dapat ditemukan dalam stream node oleh stream node itu sendiri. 

     Stream Chaining ?
Pada intinya, stream chaining adalah penambahan lapisan pada sebuah stream node.
Class Reader & Class Writer

Class Reader adalah suatu stream yang menggambarkan stream karakter yang digunakan untuk membaca sedangkan Class Writer adalah suatu stream yang menggambarkan  stream karakter  yang  digunakan  untuk menulis. 




Berikut contoh Penerapan Code pada Class Reader & Class Writer :

Perhatian !  untuk warna font merah berarti menandakan bahwa hal tersebut adalah Class Node & Filter Reader atau Writer

import java.io.*;
class dessy_11 {
void copy(String input, String output) {
/* Mengizinkan  penyimpanan  sementara  karakteryang  bertujuan  untuk  menyediakan fasilitas pembacaan karakter, arrays, dan bait */
/* Menyediakan  penyangga  karakter  bertujuan  untuk  menyediakan  efisiensi  penulisan karakter, array, dan garis */
BufferedReader reader; BufferedWriter writer; String data;
try {
      /* Untuk membaca karakter ke sebuah file */
reader = new BufferedReader(new FileReader(input));
/* Untuk menulis karakter ke sebuah file */
writer = new BufferedWriter(new FileWriter(output));
while ((data = reader.readLine()) != null) {
writer.write(data, 0, data.length());
}
reader.close();
writer.close();
} catch (IOException ie) {
ie.printStackTrace();
}
}
public static void main(String args[]) {
String inputFile = args[0];
String outputFile = args[1];
CopyFile cf = new CopyFile();
cf.copy(inputFile, outputFile);
}
}