Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Java Progamming Operasi I/O

Presentasi serupa


Presentasi berjudul: "Java Progamming Operasi I/O"— Transcript presentasi:

1 Java Progamming Operasi I/O
Disampaikan pada mata kuliah Object Oriented Programming

2 Pengenalan Streams 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.

3 Pengenalan Streams 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 Stremas 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.

4 Byte Streams 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

5 Character Streams 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

6 Variabel Streams Standar
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).

7 Membaca Input dari Console menggunakan Byte Streams
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

8 Membaca Input dari Console menggunakan Byte Streams
Contoh 1 : import java.io.*; public class DemoStream1 { public static void main(String[] args) { byte[] data = new byte[10]; System.out.print("Masukkan data : "); try { System.in.read(data); } catch (IOException e) { System.out.print("Terjadi Exception"); } System.out.print("Yang anda ketik : "); for (int i=0;i<data.length;i++) { System.out.print((char)data[i]);

9 Membaca Input dari Console menggunakan Byte Streams
Contoh 2 : import java.io.*; public class DemoStream2 { public static void main(String[] args) { byte[] data = new byte[10]; int panjang=0; System.out.print("Masukkan data : "); try { panjang=System.in.read(data); } catch (IOException e) { System.out.print("Terjadi Exception"); } System.out.println("Yang anda ketik : "); for (int i=0;i<panjang;i++) { System.out.print((char)data[i]); System.out.println("Panjang Karakter : "+panjang);

10 Menulis Output ke Console menggunakan Byte Streams
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().

11 Menulis Output ke Console menggunakan Byte Streams
Contoh 3 : import java.io.*; public class DemoStream3 { public static void main(String[] args) { byte[] data = new byte[10]; int panjang=0; System.out.print("Masukkan data : "); try { panjang=System.in.read(data); System.out.print("Yang anda ketik : "); System.out.write(data); System.out.println("Panjang Karakter : "+panjang); System.out.print("index ke-1 sebnyk 3 : "); System.out.write(data,1,3); } catch (IOException e) { System.out.print("Terjadi Exception"); }

12 Membaca Input dari File
Untuk membaca dari file dengan menggunakan byte stream,dapat digunakan class FileInputStream. Deklarasi konstruktornya : FileInputStream(File file) throws FileNotFoundException FileInputStream (String name)

13 Membaca Input dari File
Contoh 4 : import java.io.*; public class DemoStream4 { public static void main(String[] args) { byte data; String namaFile = "test.txt"; FileInputStream fin = null; try { fin = new FileInputStream(namaFile); data = (byte)fin.read(); while (data!=-1) { System.out.print((char)data); } catch (FileNotFoundException e) { System.out.println("File "+namaFile+" tidak ditemukan"); catch (IOException e) { System.out.println("Terjadi Exception");

14 Membaca Input dari File
Contoh 4 (lanjutan) : finally { if (fin!=null) { try { fin.close(); } catch (IOException e) { System.out.println("Terjadi Exception");

15 Menulis Output ke File Untuk menulis ke file dengan menggunakan byte stream,dapat digunakan class FileOutputStream. Deklarasi konstruktornya : FileOutputStream(String name) throws FileNotFoundException FileOutputStream(String name,boolean append) FileOutputStream(File file) FileOutputStream(File file,boolean append)

16 Menulis Output ke File Contoh 5 : import java.io.*;
public class DemoStream5 { public static void main(String[] args) { byte data; String namaFile = "test.txt"; FileOutputStream fout = null; try { fout = new FileOutputStream(namaFile); System.out.println("Ketik : "); data = (byte)System.in.read(); while (data!=(byte)'\r') { fout.write(data); } catch (FileNotFoundException e) { System.out.println("File "+namaFile+" tidak dapat dicreate"); catch (IOException e) { System.out.println("Terjadi Exception");

17 Menulis Output ke File finally { if (fout!=null) { try { fout.close();
Contoh 5 (lanjutan) : finally { if (fout!=null) { try { fout.close(); } catch (IOException e) { System.out.println("Terjadi Exception");

18 Membaca Input dari Console menggunakan Character Streams
Setiap karakter di Java = 16 bit. Masalah : System.in beroperasi menggunakan byte stream (8 bit) Bagaimana caranya menggunakan System.ini 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)

19 Membaca Input dari Console menggunakan Character Streams
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)

20 Membaca Input dari Console menggunakan Character Streams
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));

21 Membaca Input dari Console menggunakan Character Streams
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

22 Membaca Input dari Console menggunakan Character Streams
Contoh 6 : import java.io.*; public class DemoStream6 { public static void main(String[] args) throws IOException { char data; String str=""; BufferedReader buff = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Ketik : "); data = (char) buff.read(); while (data!='\r') { str+=data; } System.out.println("Yang diketik : "+str); System.out.println("Program Selesai");

23 Membaca Input dari Console menggunakan Character Streams
Contoh 7 : import java.io.*; public class DemoStream7 { public static void main(String[] args) throws IOException { String str; String hasil=""; BufferedReader buff = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Ketik (akhiri dengan EXIT) : "); str = buff.readLine(); while (!str.equals("EXIT")) { hasil+=str+'\n'; } System.out.println("Yang diketik : "+hasil); System.out.println("Program Selesai");

24 Menulis Output ke Console menggunakan Character Streams
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);

25 Menulis Output ke Console menggunakan Character Streams
Contoh 8 : import java.io.*; public class DemoStream8 { public static void main(String[] args) throws IOException { PrintWriter output = new PrintWriter (System.out,true); output.println("Hello World"); }

26 Membaca Input dari File menggunakan Character Streams
Untuk membaca input dari File dengan character streams, gunakan : FileReader (String fileName) throws FileNotFoundException

27 Membaca Input dari File menggunakan Character Streams
Contoh 9 : import java.io.*; public class DemoStream9 { public static void main(String[] args) { String data; String namaFile = "test.txt"; FileReader fin = null; try { fin = new FileReader(namaFile); BufferedReader buff = new BufferedReader(fin); data = buff.readLine(); while (data!=null) { System.out.print(data); } catch (FileNotFoundException e) { System.out.println("File "+namaFile+" tidak ditemukan"); catch (IOException e) { System.out.println("Terjadi Exception");

28 Membaca Input dari File menggunakan Character Streams
Contoh 9 (lanjutan): finally { if (fin!=null) { try { fin.close(); } catch (IOException e) { System.out.println("Terjadi Exception");

29 Menulis Output ke File menggunakan Character Streams
Untuk menulis ke file dengan menggunakan character stream,dapat digunakan class FileWriter. Deklarasi konstruktornya : FileWriter(String fileName) throws FileNotFoundException FileWriter(String fileName, boolean append) FileWriter(File file) FileWriter(File file,boolean append)

30 Menulis Output ke File menggunakan Character Streams
Contoh 10 : import java.io.*; public class DemoStream10 { public static void main(String[] args) { String data; String namaFile = "test.txt"; FileWriter fout = null; BufferedReader buff = new BufferedReader(new InputStreamReader(System.in)); try { fout = new FileWriter(namaFile); System.out.println("Ketik : "); data = buff.readLine(); while (!data.equals("EXIT")) { fout.write(data+"\r\n"); }

31 Menulis Output ke File menggunakan Character Streams
Contoh 10 : catch (FileNotFoundException e) { System.out.println("File "+namaFile+" tidak dapat dicreate"); } catch (IOException e) { System.out.println("Terjadi Exception"); finally { if (fout!=null) { try { fout.close();


Download ppt "Java Progamming Operasi I/O"

Presentasi serupa


Iklan oleh Google