Tampilkan postingan dengan label Stream IO. Tampilkan semua postingan
Tampilkan postingan dengan label Stream IO. Tampilkan semua postingan

Rabu, 14 Maret 2012

Serialisasi Stream IO

Java Virtual Machine (JVM) mendukung kemampuan untuk membaca atau menulis
sebuah object ke bentuk stream. kemampuan ini disebut dengan serialisasi, proses
"flattening" sebuah object sehingga data tersebut dapat disimpan ke beberapa
penyimpanan permanen atau dilewatkan ke object lain melalui class OutputStream.
Ketika menulis sebuah object, ini merupakan hal yang penting bahwa keadaan tersebut
sudah tertulis dan telah diserialisasi dari setiap objectnya dapat dibangun kembali
sebagaimana dtaa tersebut dibaca. Menyimpan sebuah objectke beberapa tipe
penyimpanan permanen yang dikenal sebagai persistence.
Stream yang digunakan untuk deserialisasi dan serialisasi secara berurutan adalah class
ObjectInputStream dan ObjectOutputStream .
Untuk memungkinkan sebuah object diserialisasi (sebagai contoh dapat disimpan dan
diurutkan), Class tersebut harus mengimplementasikan interface yang dapat
diserialisasi. Class ini seharusnya juga menyediakan default constructor atau sebuah
constructor tanpa argumen. Satu hal yang baik mengenai kemampuan untuk melakukan
serialisasiyang dapat diturunkan, yang berarti kita tidak memiliki implementasi
serialisasi pada setiap class. Ini berarti mengurangi pekrjaan untuk programmer. Anda
hanya dapat mengimplementasikan serialisasi sekali sepanjang hirarki class.
Contoh dibawah ini menuliskan sebuah object Boolean ke sebuah ObjectOutputStream.
Class Boolean mengimplementasikan interface yang dapat di Serialisasi. Selanjutnya,
Instantiasi object dari class ini dapat ditulis ke dan dibaca dari sebuah stream.


source polijava.blogspot.com

Konsep Stream IO

InputStream and OutputStream Classes

    Level tertinggi pada hirarki package java.io adalah dua abstract class: InputStream dan OutputStream
    Keduanya langsung dibuat dengan meng- extend class Object. 
    Class InputStream dan OutputStream mempunyai beberapa method dasar untuk membaca dan menulis bytes.


InputStream dan OutputStream
    
    InputStream dan OutputStream adalah abstract class untuk stream I/O, yaitu untuk membaca dan menulis data dari dan ke file.
    Untuk membaca digunakan class yang mengimplementasikan InputStream, contoh : FileInputStream.
    Untuk menulis digunakan class yang mengimplementasikan OutputStream, contoh : FileOutputStream.


Cara menggunakan stream 


Input stream
    1. Membuat obyek yg berasosiasi dg data source.
    Mis : FileInputStream
    2. Membaca informasi dari stream dg menggunakan method obyek tsb.
    Mis: read()
    3. Bila selesai, panggil method close.

Output Stream

    1. Membuat obyek yg berasosiasi dg data destination.
    Mis : BufferedWriter
    2.Menulis informasi ke stream tujuan dg menggunakan method obyek tsb.
    Mis: write()
    3. Bila selesai, panggil method close.



Source ninafauziah.blogspot.com

Apa itu Stream IO

Sistem IO di Java adalah bagian dari library Java yang bertugas menangani input dan output dalam sebuah program Java. Input dan output ini bentuknya bisa bermacam-macam, di antaranya:
  1. Menangani input dan output dari dan ke standar output
  2. Menangani operasi file (membaca atau menulis file)
  3. Memproses data yang masuk melalui soket, dll
Arsitektur library IO di Java dirancang sedemikian rupa sehingga memudahkan dilakukannya ekstensi terhadap library yang sudah ada. Akan tetapi, rancangan tersebut membuat banyak orang yang baru belajar Java menjadi agak sulit untuk memahami sistem IO ini. Di post ini saya akan mencoba menjelaskan dasar dari sistem IO ini.
Pada dasarnya, membaca atau menulis IO itu adalah melakukan operasi pembacaan dan penulisan array of byte. Untuk urusan input, kelas dasar yang digunakan adalah java.io.InputStream, sementara untuk urusan output yang digunakan adalah kelas java.io.OutputStream. Kedua kelas tersebut merupakan kelas abstrak yang akan menjadi kelas dasar dalam IO di Java. Kelas-kelas yang mengimplementasikan InputStream antara lain AudioInputStream untuk membaca file dalam format audio, ByteArrayInputStream untuk membaca input dalam format byte array.
Walaupun sebenarnya operasi IO adalah operasi pembacaan dan penulisanarray of byte, akan tetapi seringkali kita butuh untuk membaca dan menulis dalam format teks. Untuk lebih memudahkan dalam melakukan hal tersebut, Java menyediakan kelas abstrak Reader untuk melakukan operasi pembacaan stream dalam format teks dan kelas abstrak Writer untuk melakukan penulisan dalam format teks. Kelas-kelas yang mengimplementasikan kelas Reader antaranya InputStreamReader, BufferedReader, dan FileReader.
                                               Ini Merupakan Contoh Penggunaan Stream IO

    Program dengan menggunakan class FileOutputStream untuk menulis File.
    Perhatikan bahwa menulis file dapat menyebabkan Exception, karena itu diperlukan penangkapan sinyal exception bila terjadi error.

Contoh Random Access File

public static void main(String[] args) throws IOException{
          File f = new File("test3.txt");
         if (!f.isFile() || !f.canRead() || !f.canWrite()) throw new
        IOException();
          RandomAccessFile raf = new RandomAccessFile(f, "rw");
}