Syahrizal D. Putra, S.T, M.
Kom
▪ Inner Class
▪ Eksepsi
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Dalam Java, operasi I/O menggunakan
streams.
▪ Streams adalah abstraksi dari sesuatu yang
digunakan untuk menulis/menghasilkan dan
membaca/mendapatkan suatu informasi.
▪ Semua streams memiliki sifat yang sama
walaupun peralatan fisik yang berhubungan
dengan suatu stream berbeda-beda.
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Secara umum streams dalam Java dibagi dalam 2
bagian besar :
▪ byte streams
▪ character streams
▪ Byte Streams digunakan untuk operasi I/O yang
menggunakan data biner (byte)
▪ Character Streams digunakan untuk menangani
operasi I/O yang menggunakan character.
▪ Karakter dalam java menggunakan Unicode, sehingga
penggunaan character streams dapat digunakan untuk
menangani karakter-karakter internasional (karakter diluar
kode ASCII Standar)
▪ Semua class & interface yang berhubungan dengan
streams ada dalam package java.io.
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Byte stream diperkenalkan oleh Java sejak
JDK 1.0
▪ Stream ini digunakan untuk menulis &
membaca data biner
▪ Untuk byte streams, Java menyediakan dua
class abstrak yang merupakan superclass
tertinggi yaitu :
▪ InputStream untuk membaca input
▪ OutputStream untuk menuliskan output
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Character stream diperkenalkan oleh Java
sejak JDK 1.1
▪ Stream ini digunakan untuk menulis &
membaca data yang berupa character.
▪ Untuk character streams, Java menyediakan
dua class abstrak yang merupakan superclass
tertinggi yaitu :
▪ Reader untuk membaca input
▪ Writer untuk menuliskan output
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Secara default, Java telah menyediakan 3
buah variabel streams yang dapat langsung
digunakan, karena variabel ini member
public static dari class System, yaitu :
in,out,err.
▪ System.out : output stream standar. Secara
default outputnya adalah console.
▪ System.in : input stream standar. Secara
default inputya adalah keyboard.
▪ System.err : output stream untuk mencetak
pesan kesalahan pada console (default).
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Untuk membaca dari console digunakan
variabel stream standar yang telah
disediakan oleh class System, yaitu in.
▪ Variabel ini memegang referensi dari objek
dengan tipe InputStream sehingga untuk
membaca dari console (yang diketik lewat
keyboard), dapat menggunakan method read
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Untuk menulis ke console digunakan
variabel stream standar yang telah
disediakan oleh class System, yaitu out.
▪ Variabel ini memegang referensi dari objek
dengan tipe PrintStream.
▪ PrintStream merupakan turunan dari class
OutputStream.
▪ Method yang biasa digunakan :
▪ print(),println(),write().
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Untuk membaca dari file dengan menggunakan byte
stream,dapat digunakan class FileInputStream.
▪ Deklarasi konstruktornya :
▪ FileInputStream(File file)
throws FileNotFoundException
▪ FileInputStream (String name)
throws FileNotFoundException
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Untuk menulis ke file dengan menggunakan byte stream,dapat
digunakan class FileOutputStream.
▪ Deklarasi konstruktornya :
▪ FileOutputStream(String name)
throws FileNotFoundException
▪ FileOutputStream(String name,boolean append)
throws FileNotFoundException
▪ FileOutputStream(File file)
throws FileNotFoundException
▪ FileOutputStream(File file,boolean append)
throws FileNotFoundException
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
1. import java.io.*;
2. public class DemoStream5 {
3. public static void main(String[] args) {
4. byte data;
5. String namaFile = "test.txt";
6. FileOutputStream fout = null;
7. try {
8. fout = new FileOutputStream(namaFile);
9. System.out.println("Ketik : ");
10. data = (byte)System.in.read();
11. while (data!=(byte)'\r') {
12. fout.write(data);
13. data = (byte)System.in.read();
14. }
15. }
16. catch (FileNotFoundException e) {
17. System.out.println("File "+namaFile+" tidak dapat
dicreate");
18. }
19. catch (IOException e) {
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
20. System.out.println("Terjadi Exception");
21. }
(lanjutan) :
1. finally {
2. if (fout!=null) {
3. try {
4. fout.close();
5. }
6. catch (IOException e) {
7. System.out.println("Terjadi
Exception");
8. }
9. }
10. }
11. }
12. }
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Setiap karakter di Java = 16 bit.
▪ Masalah : System.in beroperasi menggunakan
byte stream (8 bit)
▪ Bagaimana caranya menggunakan System.in pada
character streams?
▪ Solusi : Bungkus System.in dengan class
InputStreamReader yang dapat
mengkonversi byte streams ke character streams
▪ Deklarasi konstruktor nya :
InputStreamReader (Input Stream in)
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Masalah lain : byte streams (8 bit) ➔ ukurannya lebih
kecil dari char (16bit).
▪ Bagaimana mengkonversi dari byte streams menjadi char
streams dengan benar?
▪ Solusi : input stream sebaiknya dibaca dari buffer,
bukan dari peralatan fisik langsung. Untuk bungkus
objek dari InputStreamReader ke dalam class
BufferedReader.
▪ Deklarasi konstruktornya :
BufferedReader (Reader in)
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Jadi jika ingin membaca dari console dengan Character
Streams, dapat ditulis dengan cara :
InputStreamReader input =
new InputStreamReader(System.in);
BufferedReader buff = new BufferedReader(input);
▪ Atau dengan cara :
BufferedReader buff =
new BufferedReader(
new InputStreamReader(System.in));
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Untuk membaca character streams, dapat
menggunakan method :
int read() throws IOException
int read(char[] cbuf) throws IOException
int read(char[] cbuf,int off,int len)
throws IOException
String readLine() throws IOException
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Untuk menulis output ke console dengan Character
Streams, adalah dengan cara membungkus System.out
dengan object output stream yang mendukung
character streams.
▪ Dalam hal ini gunakan class PrintWriter
▪ Deklarasi konstruktornya :
PrintWriter (OutputStream out);
PrintWriter (OutputStream out,Boolean autoFlush);
▪ Contoh :
PrintWriter output =
new PrintWriter (System.out,true);
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Untuk membaca input dari File dengan character streams,
gunakan :
FileReader (String fileName)
throws FileNotFoundException
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
▪ Untuk menulis ke file dengan menggunakan character
stream,dapat digunakan class FileWriter.
▪ Deklarasi konstruktornya :
▪ FileWriter(String fileName)
throws FileNotFoundException
▪ FileWriter(String fileName, boolean append)
throws FileNotFoundException
▪ FileWriter(File file)
throws FileNotFoundException
▪ FileWriter(File file,boolean append)
throws FileNotFoundException
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom
Pemrograman Berorientasi Obyek - Syahrizal D. Putra, S.T, M.Kom