•
– Tidak peduli dari mana input berasal atau kemana output akan pergiStream adalah suatu abstraksi untuk data input dan output
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