8.3.12

Konsep Dasar Stream

Konsep Stream




• 

Stream adalah suatu abstraksi untuk data input dan output
– Tidak peduli dari mana input berasal atau kemana output akan pergi


Package java.io


• 

Package java.io berisi kelas yang

berhubungan dengan I/O di Java
E • Dibagi menjadi beberapa kelas
   – Reader/Writer dan turunannya
   – InputStream/OutputStream dan turunannya
   – I/O Network (socket TCP/IP)
   – Exception


Kelas Abstrak pada java.io
• Ada 4 kelas abstrak dasar
– Reader
– Writer
– InputStream
– OutputStream
• Reader dan Writer digunakan untuk data teks
• InputStream dan OutputStream digunakan untuk data biner


Kelas Reader/Writer
• Kelas Reader/Writer bekerja pada
stream teks (bahasa apapun)
• Disebut juga character stream
• Menangani konversi teks Unicode secara
otomatis
• Jangan dipertukarkan dengan
InputStream/OutputStream secara
sembarangan
• Hasilnya bisa error


Diagram Kelas Reader dan Turunannya



Diagram Kelas Writer dan Turunannya

Kelas InputStream/OutputStream

• InputStream dan OutputStream 
digunakan untuk mengakses informasi non teks ( biner ) 

– disebut juga sebagai byte stream
– COntoh data biner: File EXE, file GIF
• InputStream/OutputStream Tidak
menangani konversi teks Unicode secara
otomatis

Diagram Kelas InputStream dan 
Turunannya


Diagram Kelas OutputStream dan 
Turunannya


Input dan Output File
• Gunakan FileInputStream dan 
FileOutputStream untuk membaca menulis file non teks

• Gunakan FileReader/FileWriter
untuk file teks


Contoh Membuka file untuk dib`ca :




• Cara untuk membuka file (untuk dibaca):
FileInputStream s = new
FileInputStream(“test.dat”);
• Cara untuk membaca satu byte:
int a = s.read()
• Tersedia juga method untuk membaca array 

of byte


• Prototype read adalah : int read()
– Perlu dicast ke byte untuk membaca sebagai byte
– Memakai int supaya cukup merepresentasikan -1

Contoh Membuka file untuk ditulis :
• Cara untuk membuka file (untuk ditulisi):
FileOutputStream out = new
FileOutputStream(“test.out”);
• Intruksi untuk menulis satu byte:
– Out.write(‘a’)
• Tersedia juga method untuk menulis
array of byte

Memakai File Reader/File Writer
• Sama seperti contoh sebelumnya
– Ganti nama kelas FileInputStream 
dengan FileReader dan FileOutputStream dengan File 
– Tetap gunakan read/write

• Perhatikan bahwa
– Nilai kembalian

Wrapper

• Stream dapat dikomposisi atau difilter atau
dibungkus untuk menghasilkan stream yang lebih kompleks

• Konsep ini mirip dengan pipe di
Unix/Windows
• Contoh:
– BufferedReader yang menyediakan
readLine()
– PipedWriter/PipedReader untuk mempipe
suatu stream
– PrintStream/PrintWriter untuk menulis ke
stream dengan mudah

Contoh Wrapper: BufferedReader :

• Perhatikan potongan kode berikut:
BufferedReader br*= new
BufferedReader(new
FileReader(“hello.txt”));
//membaca 1 baris
String teks = br.readLine();
• BufferedReader membungkus
(wraps) FileReader untuk
menyediakan method readLine()

Contoh Wrapper: PrintWriter :

• Perhatikan potongan kode berikut:
PrintWriter pr = new
PrintWriter(new
FileWriter(“hello.txt”));
//Menulis 1 baris
pr.println(“Hello “);
• PrintWriter membungkus (wraps)
FileWriter untuk menyediakan
method print(), println() untuk
semua tipe data dasar

No comments:

Post a Comment