–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
Konsep Dasar Stream IO
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar