Eno. Diberdayakan oleh Blogger.

Pages

RSS

Konsep Dasar Stream IO

–Stream adalah 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
–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

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

Stream Node dan Filter

–Stream Node
- Terdiri dari fungsi dasar dari membaca atau menulis dari sebuah lokasi tertentu.
- Pada jenis stream node termasuk di dalamnya file, memory, dan saluran data.
Stream Filter
- Dimasukkan ke lapisan stream node antara thread atau proses.
- Untuk fungsi- fungsi tambahan.
- Menambahkan layer pada sebuah stream node yang disebut dengan sistem chaining.

Class File
- Bukan merupakan sebuah class stream.
- Penting karena class- class stream memanipulasi object File.
- Representasi abstract dari file- file aktual dan directory pathnames.
Contoh Class File :
import java.io.*;

public class FileInfoClass{
  public static void main(String args[]){
     String fileName=args[0];
     File
Reader Methods
* public int read(-) throws IOExeption -> sebuah method overload yang mempunyai 3 versi yaitu seluruh character array atau bagian dari character array.
* public int read()-> membaca character tunggal
* public int read(char[]cbuf)->membaca character dan menyimpannya pada array cbuf.
* public abstract int read(char[] cbuf, int offset, int length)->membaca angka dari character dan menyimpannya di character array cbuf dimulai dari spesifikasi offset.
* public void mark(int readAheadLimit) throw IOException
* public boolean markSupported()
* public void reset() throw IOException

Class Filter Reader
- BufferedReader
- FilterReader
- InputStreamReader
- LineNumberReader
- PushbackReader

Writer Methods
* public void write(-) throw IOException
* public void write(int c)
* public void write(char[] cbuf)
* public abstract void write(char[] cbuf, int offset, int length)
* public void write(String str)
* public void write(String str, int offset, int length)
* public abstract void close() throw IOException
* public abstract void flush()

Node Writer Classes
* File Writer
* CharArrayWriter
* StringWriter
* PipedWriter

Filter Writer Class
* BufferedWriter
* FilterWriter
* OutputStreamWriter
* PrintWriter

Contoh Dasar ReaderWriter

import java.io.*;

class CopyFile {
   void copy(String input, String output) {
      FileReader reader;
      FileWriter writer;
      int data;
      try {
          reader = new FileReader(input);
          writer = new FileWriter(output);


Method Class InputStream
* public int read(-)throws IOException
* public abstract int read()
* public int read(byte[]bBuf)
* public abstract int read(char[]cbuf, in offset, int length)
* public abstract void close()throws IOException
* public void mark(int readAheadLimit)throw IOException
* public boolean markSupported()
* public void reset() throw IOException

Method Class Output Stream
* public void write(-) throws IOException
* public abstract void write(int b)
* public void write(byte[]bBuf)
* public void write(byte[] bBuf, int offset, int length)
* public abstract void close() throw IOException
* public abstract void flush()

Contoh Dasar InputStream/OutputStream

import java.io.*;
class CopyFile {
   void copy(String input, String output) {
      FileInputStream inputStr;
      FileOutputStream outputStr;
      int data;
      try {
        inputStr = new FileInputStream(input);
        outputStr = new FileOutputStream(output);

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 ke dalam ke dalam 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 ke dalam sebuah tempat penyimpanan
   permanent
Stream untuk serialization
- ObjectInputStream(untuk deserializing)
- ObjectOutputStream(untuk serializing)
Untuk memperbolehkan sebuah object untuk diserialize :
- Class tersebut harus meng-implement interface Serializable
- Class tersebut harus menyediakan sebuah default constructor
   tanpa argument
- Kemampuan serialize diwariskan
                         * Tidak perlu untuk mengimplement serializable untuk
                            tiap class
                         * Bisa mengimplement serializable sepanjang masih
                            dalam hierarki class
Object Non-Serializable
- 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 :
     * FileInputStrem objects
     * Thread objects
- Sebuah NotSerializableException akan dilempar apabila terjadi
  kesalahan dalam serialization
Kata Kunci Transient
Sebuah class yang terdiri dari non-serializable object bisa di-serialize
- Reference kepada non-serializable object akan ditandai dengan
   sebuah keyword transient
- contoh :
         class MyClass implements Serializable {
   transient Thread thread;
   //try removing transient
   int data;
   /* some other data */
}
   - Keyword transient keyword mencegah data untuk di-serialize
     Serialization: Membuat Object Stream
- Gunakan class ObjectOutputStream
- Gunakan method writeObject
    public final void writeObject(Object obj)throw IOException
- di mana obj adalah object yang akan ditulis ke dalam Stream
Serialization: Menulis ObjectStream

class MyClass implements Serializable {

   transient Thread thread;
   //try removing transient
   int data;
   /* some other data */
}
Deserialization:Membaca Object Stream
- Gunakan class ObjectInputStream
- Gunakan method readObject
          public final Object readObject()
            throw IOException
    ClassNotFoundException
di mana
 - 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
Kesimpulan
- Class Writer
   * Method
      write, close, flush
   * Class Node Write
    FileWriter, CharArrayWriter, StringWriter, PipedWriter
   * Class Filter Writer
    BufferedWriter, FilterWriter, OutputStreamWriter, PrintWriter


- Jenis Stream secara Umum
   - Stream Character dan Byte
    - Stream Input dan Output
    - Stream Node dan Filter
- Class File
    - Constructor
    - Method
- Class Reader
         * Method(read, close, mark, markSupported, reset)
         * Class Node Reader(FileReader, CharArrayReader, StringReader,  
      PipedReader)
         * Class Filter Reader(BufferedReader, FileReader,
      InputStreamReader, LineNumberReader, PushbackReader)
- Class InputStream
   - Method (read, close, mark, markSupported, reset)
    - Class Node InputStream(FileInputStream,
   BufferedArrayInputStream, PipedInputStream)
  - Class Filter InputStream(BufferedInputStream, FilterInputStream,
    ObjectInputStream, DataInputStream, LineNumberInputStream,
    PushbackInputStream)
- Class OutputStream
–Methods(write, close, flush)
–ClassNodeOutputStream(FileOutputStream,
BufferedArrayOutputStream, PipedOutputStream)
–ClassFilterOutputStream(BufferedOutputStream,
FilterOutputStream, ObjectOutputStream, DataOutputStream,
PrintStream)
- Serialization
– Keyword transient
– Serialization: Menulis sebuah Object Stream
  •Gunakan class ObjectOutputStream
  •Gunakan method writeObject
–Deserialization: Membaca sebuah Object Stream
  •Gunakan class ObjectInputStream
  •Gunakan method readObject

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar