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);
}
}