Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pengenalan Pemrograman 2 Versi 2.0 I/O Stream lanjutan.

Presentasi serupa


Presentasi berjudul: "Pengenalan Pemrograman 2 Versi 2.0 I/O Stream lanjutan."— Transcript presentasi:

1 Pengenalan Pemrograman 2 Versi 2.0 I/O Stream lanjutan

2 Topik Jenis Stream yang umum  Stream Karakter dan Byte  Stream Input dan Output  Stream Node dan Filter Class-class File Class-class Reader  Method-method Reader  Class-class Node Reader  Class-class Filter Reader

3 Topik  Class-class Writer  Method Writer  Class-class Node Writer  Class-class Filter Writer  Class-class InputStream  Method-method InputStream  Class-class Node InputStream  Class-class Filter InputStream

4 Topik  Class-class OutputStream  Method method OutputStream  Class-class Node OutputStream  Class-class Filter OutputStream  Serialisasi  Kata kunci transient  Serialisasi: Menulis sebuah Stream Object  Deserialisasi: Membaca sebuah stream object

5 Jenis stream yang umum  Stream  Keadaan dari sebuah file atau sebuah device yang memungkinkan rangkaian item dapat dibaca atau ditulis  Kategori-kategori Stream yang umum  Stream Character dan Byte  Stream Input dan Output  Stream Node dan Filter

6 Stream Karakter dan Byte  Stream Karakter  Keadaan File atau device untuk karakter Unicode  Superclass dari semua class-class untuk stream karakter : ◦ Class Reader ◦ Class Writer ◦ Kedua class tersebut adalah abstract  Stream Byte  Untuk data biner  Class-class root untuk stream byte : ◦ Class InputStream ◦ ClassOutputStream ◦ Kedua class tersebut adalah abstract

7 Stream Input dan Output  Input atau stream sumber  Dari stream ini dapat membaca  Superclass dari semua input streams: ◦ class InputStream ◦ class Reader  Output  Kita dapat menulis pada stream ini  Class root dari stream ini: ◦ Class OutputStream ◦ Class Writer

8 Stream Node dan Filter  Stream Node  Terdiri atas fungsi dasar dari membaca atau menulis dari sebuah lokasi tertentu.  Pada jenis stream node termasuk didalamnya file, memory, dan saluran data  Stream Filter  Di masukkan ke lapisan stream node antara thread atau proses  Untuk fungsi-fungsi tambahan  Menambahkan layer pada sebuah stream node yang disebut dengan stream chaining

9 Class File  Bukan merupakan sebuah class stream  Penting karena class-class stream memanipulasi object File  Representasi abstract dari file-file aktual dan directory pathnames

10 Class File : Konstruktor Memiliki 4 konstruktor

11 Class File : Method

12

13 Contoh Class File import java.io.*; public class FileInfoClass { public static void main(String args[]) { String fileName = args[0]; File fn = new File(fileName); System.out.println("Name: " + fn.getName()); if (!fn.exists()) { System.out.println(fileName + " does not exists."); //bersambung...

14 Contoh Class File /* Membuat sebuah directory sementara */ System.out.println("Creating temp directory..."); fileName = "temp"; fn = new File(fileName); fn.mkdir(); System.out.println(fileName + (fn.exists()? "exists": "does not exist")); System.out.println("Deleting temp directory..."); fn.delete(); //bersambung...

15 Contoh Class File System.out.println(fileName + (fn.exists()? "exists": "does not exist")); return; }//end of: if (!fn.exists()) System.out.println(fileName + " is a " + (fn.isFile()? "file." :"directory.")); if (fn.isDirectory()) { String content[] = fn.list(); System.out.println("The content of this directory:"); //bersambung...

16 Contoh class File for (int i = 0; i < content.length; i++) { System.out.println(content[i]); } } //end of: if (fn.isDirectory()) if (!fn.canRead()) { System.out.println(fileName + " is not readable."); return; } //bersambung...

17 Contoh Class File System.out.println(fileName + " is " + fn.length() + " bytes long."); System.out.println(fileName + " is " + fn.lastModified() + " bytes long."); if (!fn.canWrite()) { System.out.println(fileName + " is not writable."); }

18 Method Class Reader

19 Method Class reader

20 Class-class Node reader

21 Class Filter Reader

22 Method dari Class Writer

23 Class Node Writer

24 Class Filter Writer

25 Contoh Dasar Reader/Writer 1 import java.io.*; 2 class CopyFile { 3 void copy(String input, String output) { 4 FileReader reader; 5 FileWriter writer; 6 int data; 7 try { 8 reader = new FileReader(input); 9 writer = new FileWriter(output); 10 //berlanjut...

26 12 while ((data = reader.read()) != -1) { 13 writer.write(data); 14 } 15 reader.close(); 16 writer.close(); 17 } catch (IOException ie) { 18 ie.printStackTrace(); 19 } 20 } 21 //berlanjut... Contoh Dasar Reader/Writer

27 22 public static void main(String args[]) { 23 String inputFile = args[0]; 24 String outputFile = args[1]; 25 CopyFile cf = new CopyFile(); 26 cf.copy(inputFile, outputFile); 27 } 28 } Contoh Dasar Reader/Writer

28 Contoh Reader/Writer Lanjut 1 import java.io.*; 2 class CopyFile { 3 void copy(String input, String output) { 4 BufferedReader reader; 5 BufferedWriter writer; 6 String data; 7 try { 8 reader = new 9 BufferedReader(new FileReader(input)); 10 writer = new 11 BufferedWriter(new FileWriter(output)); 12 //berlanjut...

29 Contoh Reader/Writer Lanjut 13 while ((data = reader.readLine()) != null) { 14 writer.write(data, 0, data.length); 15 } 16 reader.close(); 17 writer.close(); 18 } catch (IOException ie) { 19 ie.printStackTrace(); 20 } 21 } 22 //berlanjut...

30 23 public static void main(String args[]) { 24 String inputFile = args[0]; 25 String outputFile = args[1]; 26 CopyFile cf = new CopyFile(); 27 cf.copy(inputFile, outputFile); 28 } 29 } Contoh Reader/Writer Lanjut

31 Method Class InputStream

32

33

34 Class Filter InputStream

35 Method Class OutputStream

36 Inti Class OutputStream

37 Class Filter OutputStream

38 Contoh Dasar InputStream / OutputStream 1 import java.io.*; 2 class CopyFile { 3 void copy(String input, String output) { 4 FileInputStream inputStr; 5 FileOutputStream outputStr; 6 int data; 7 try { 8 inputStr = new FileInputStream(input); 9 outputStr = new FileOutputStream(output); 10 //Selanjutnya...

39 Contoh Dasar InputStream / OutputStream 12 while ((data = inputStr.read()) != -1) { 13 outputStr.write(data); 14 } 15 inputStr.close(); 16 outputStr.close(); 17 } catch (IOException ie) { 18 ie.printStackTrace(); 19 } 20 } 21 //selanjutnya...

40 Contoh Dasar InputStream / OutputStream 22 public static void main(String args[]) { 23 String inputFile = args[0]; 24 String outputFile = args[1]; 25 CopyFile cf = new CopyFile(); 26 cf.copy(inputFile, outputFile); 27 } 28 }

41 Contoh Modifikasi InputStream / OutputStream 1 import java.io.*; 2 class CopyFile { 3 void copy(String input) { 4 PushbackInputStream inputStr; 5 PrintStream outputStr; 6 int data; 7 try { 8 inputStr = new PushbackInputStream(new 9 FileInputStream(input)); 10 outputStr = new PrintStream(System.out); 11 //continued...

42 Contoh Modifikasi InputStream/ OutputStream 13 while ((data = inputStr.read()) != -1) { 14 outputStr.println("read data: " + 15 (char) data); 16 inputStr.unread(data); 17 data = inputStr.read(); 18 outputStr.println("unread data: " + 19 (char) data); 20 } 21 inputStr.close(); 22 outputStr.close(); 23 //continued...

43 Contoh Modifikasi InputStream/ OutputStream 24 } catch (IOException ie) { 25 ie.printStackTrace(); 26 } 27 } 28 public static void main(String args[]) { 29 String inputFile = args[0]; 30 CopyFile cf = new CopyFile(); 31 cf.copy(inputFile); 32 } 33 }

44 Serialization Definisi : –Didukung oleh Java Virtual Machine (JVM) –Memiliki kemampuan untuk menulis dan membaca object ke stream –Merupakan sebuah proses untuk menyederhanakan object –Tujuan: Untuk menyimpan sebuah object kedalam sebuah penyimpanan permanent untuk memparsing ke object yang lain melalui class OutputStream Menulis sebuah Object –Keadaan tersebut haruslah dituliskan dalam sebuah serialized form sehingga object yang telah dibangun dapat dibaca Persistence –Menyimpan sebuah object kedalam sebuah tempat penyimpanan permanent

45 Streams untuk serialization –ObjectInputStream Untuk deserializing –ObjectOutputStream Untuk serializing Untuk memperbolehkan sebuah object untuk di-serialize : –Class tersebut harus meng-implement interface Serializable –Class tersebut harus menyediakan sebuah default constructor tanpa argument –Kemampuan serialize diwariskan Tidak perlu untuk meng-implement Serializable untuk tiap class Bisa meng-implement Serializable sepanjang masih dalam hierarki class Serialization

46 Object Non-Serializable Pada saat object di-serialize –Hanya disediakan object dari data tersebut –Method dan constructor bukan merupakan bagian dari serialized stream Beberapa data tidak di-serialize –Karena representasi dari data berubah secara konstan –Contoh: FileInputStream objects Thread objects Sebuah NotSerializableException akan dilempar apabila terjadi kesalahan dalam serialization

47 Keyword transient Sebuah class yang terdiri dari non-serializable object bisa di-serialize –Reference kepada non-serializable object akan ditandai dengan sebuah keyword transient –Contoh: 1 class MyClass implements Serializable { 2 transient Thread thread; 3 //try removing transient 4 int data; 5 /* some other data */ 6 } –Keyword transient keyword mencegah data untuk di-serialize

48 Serialization: Membuat Object Stream Gunakan class ObjectOutputStream Gunakan method writeObject public final void writeObject(Object obj) throws IOException dimana, –obj adalah object yang akan ditulis kedalam Stream

49 Serialization: Menulis Object Stream 1 import java.io.*; 2 public class SerializeBoolean { 3 SerializeBoolean() { 4 Boolean booleanData = new Boolean("true"); 5 try { 6 FileOutputStream fos = new 7 FileOutputStream("boolean.ser"); 8 ObjectOutputStream oos = new 9 ObjectOutputStream(fos); 10 oos.writeObject(booleanData); 11 oos.close(); 12 //continued...

50 Serialization: Menulis Object Stream 13 } catch (IOException ie) { 14 ie.printStackTrace(); 15 } 16 } 17 public static void main(String args[]) { 18 SerializeBoolean sb = new SerializeBoolean(); 19 } 20 }

51 Deserialization: Membaca Object Stream Gunakan class ObjectInputStream Gunakan method readObject public final Object readObject() throws IOException, ClassNotFoundException dimana, –obj adalah object yang akan dibaca dari Stream Tipe Object yang akan dikembalikan harus di typecase ke class name yang ditunjuk sebelum method dalam class tersebut dapat dieksekusi.

52 Deserialization: Membaca Object Stream 1 import java.io.*; 2 public class UnserializeBoolean { 3 UnserializeBoolean() { 4 Boolean booleanData = null; 5 try { 6 FileInputStream fis = new 7 FileInputStream("boolean.ser"); 8 ObjectInputStream ois = new 9 ObjectInputStream(fis); 10 booleanData = (Boolean) ois.readObject(); 11 ois.close(); 12 //continued...

53 Deserialization: Membaca Object Stream 13 } catch (Exception e) { 14 e.printStackTrace(); 15 } 16 System.out.println("Unserialized Boolean from " 17 + "boolean.ser"); 18 System.out.println("Boolean data: " + 19 booleanData); 20 System.out.println("Compare data with true: " + 21 booleanData.equals(new Boolean("true"))); 22 } 23 //continued...

54 Deserialization: Membaca Object Stream 13 public static void main(String args[]) { 14 UnserializeBoolean usb = 15 new UnserializeBoolean(); 16 } 17 }

55 Kesimpulan Jenis Stream secara Umum –Stream Character dan Byte –Stream Input dan Output –Stream Node dan Filter Class File –Constructor File(String pathname) –Method

56 Kesimpulan Class Reader –Method read, close, mark, markSupported, reset –Class Node Reader FileReader, CharArrayReader, StringReader, PipedReader –Class Filter Reader BufferedReader, FilterReader, InputStreamReader, LineNumberReader, PushbackReader

57 Kesimpulan Class Writer –Method write, close, flush –Class Node Writer FileWriter, CharArrayWriter, StringWriter, PipedWriter –Class Filter Writer BufferedWriter, FilterWriter, OutputStreamWriter, PrintWriter

58 Kesimpulan Class InputStream –Method read, close, mark, markSupported, reset –Class Node InputStream FileInputStream, BufferedArrayInputStream, PipedInputStream –Class Filter InputStream BufferedInputStream, FilterInputStream, ObjectInputStream, DataInputStream, LineNumberInputStream, PushbackInputStream

59 Kesimpulan Class OutputStream –Methods write, close, flush –Class Node OutputStream FileOutputStream, BufferedArrayOutputStream, PipedOutputStream –Class Filter OutputStream BufferedOutputStream, FilterOutputStream, ObjectOutputStream, DataOutputStream, PrintStream

60 Kesimpulan Serialization –Definisi –Keyword transient –Serialization: Menulis sebuah Object Stream Gunakan class ObjectOutputStream Gunakan method writeObject –Deserialization: Membaca sebuah Object Stream Gunakan class ObjectInputStream Gunakan method readObject


Download ppt "Pengenalan Pemrograman 2 Versi 2.0 I/O Stream lanjutan."

Presentasi serupa


Iklan oleh Google