1 / 31

Operasi IO

Operasi IO. OOP Praktek dengan Java Miswar ,S.st miswar@bps.go.id Sumber : Eddy Muntina Dharma,ST,MT. Pengenalan Streams. Dalam Java, operasi I/O menggunakan streams.

swain
Download Presentation

Operasi IO

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operasi IO OOP Praktekdengan Java Miswar ,S.st miswar@bps.go.id Sumber: Eddy MuntinaDharma,ST,MT

  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 Consolemenggunakan 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 Consolemenggunakan 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) throws FileNotFoundException

  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); • data = (byte)fin.read(); • } • } • 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) throws FileNotFoundException • FileOutputStream(File file) throws FileNotFoundException • FileOutputStream(File file,boolean append) throws FileNotFoundException

  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); • data = (byte)System.in.read(); • } • } • catch (FileNotFoundException e) { • System.out.println("File "+namaFile+" tidak dapat dicreate"); • } • catch (IOException e) { • System.out.println("Terjadi Exception"); • }

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

  18. Membaca Input dari Consolemenggunakan 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 Consolemenggunakan 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 dalamclassBufferedReader. • Deklarasi konstruktornya : BufferedReader (Reader in)

  20. Membaca Input dari Consolemenggunakan 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 Consolemenggunakan 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; • data = (char) buff.read(); • } • 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'; • str = buff.readLine(); • } • System.out.println("Yang diketik : "+hasil); • System.out.println("Program Selesai"); • } • }

  24. Menulis Output ke Consolemenggunakan 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); • data = buff.readLine(); • } • } • 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) throws FileNotFoundException • FileWriter(File file) throws FileNotFoundException • FileWriter(File file,boolean append) throws FileNotFoundException

  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"); • data = buff.readLine(); • } • }

  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(); • } • catch (IOException e) { • System.out.println("Terjadi Exception"); • } • } • } • } • }

More Related