Halaman

Senin, 31 Januari 2011

STREAM JAVA

Tipe-Tipe Stream berdasarkan elemenya, yaitu:

1.      Stream byte adalah abstraksi file atau alat untuk data biner. InputStream adalah abstraksi class root untuk semua input stream byte . Class OutputStream adalah class root abstraksi dari semua output stream byte.
2.      Stream karakter adalah untuk karakter. Untuk stream karakter, superclasss yang sesuai dari semua class-class secara berturut-turut adalah class Reader dan the Writer. Kedua class-class ini adalah abstraksi class-class untuk membaca dan menulis stream karakter.

Input dan Output Stream
Stream juga dikategorikan berdasarkan apakah mereka digunakan untuk membaca atau menulis stream. Class InputStream dan class Reader adalah superclass-superclass dari semua input stream yang digunakan untuk membaca stream.. Class OutputStream dan class Writer adalah class-class root dari semua output stream yang digunakan untuk menulis stream. Input stream juga dikenal sebagai stream sumber (source stream) sejak kita memperoleh informasi dari stream ini. sementara itu output stream disebut juga stream hasil(sink stream).

A.  Input Stream
Merupakan class abstrak yang mendefinisikan model Java untuk aliran masukan. Semua methode pada class ini akan melemparkan IOException pada keadaan kesalahan. Subclass dari inputStream adalah :

ByteArrayInputStream
Adalah implementasinya dari aliran masukan yang menggunakan array byte sebagai sumber. Class ini memiliki 2 konstruktor, masing-masing membutuhkan array byte untuk menyediakan sumber data.
ByteArrayInputStream input1 = new ByteArrayInputStream(b);
ByteArrayInputStream input2 = new ByteArrayInputStream(b,0,3);

FileInputStream
Class ini menggunakan file data actual sebagai dasar untuk suatu Inputstream. Saat suatu FileInputStream dihasilkan, dia juga dibuka agar siap dibaca.
Contoh :
Ø  FileInputStream a = new FileInputStream(“/autoexec.bat”); atau
Ø  String fileku =”/autoexec.bat” ;
Ø  FileInputStream a = new FileInputStream(fileku);


FilterInputStream
Untuk menambah fungsi ke class dasar InputStream, Anda dapat menggunakan class stream filter. Berikut ini adalah beberapa dari class-class tersebut :
a. BufferedInputStream
Sebuah subclass dari FilterInputStream yang memungkinkan penyimpanan input sementara untuk menyediakan pembacaan byte yang lebih efisien.
b. FilterInputStream
Untuk membaca byte stream yang telah terfilter, yang mungkin memindahkan source dasar dari data sepanjang proses dan menyediakan fungsi tambahan.
c. ObjectInputStream
Digunakan untuk serialisasi object. Deserialisasi object dan data primitif yang telah tertulis sebelumnya menggunakan sebuahObjectOutputStream.
d. DataInputStream
Sebuah subclass dari FilterInputStream yang memerintahkan sebuah aplikasi membaca data primitif Java dari sebuah input stream dasar dalam sebuah Mesin yang berjalan secara bebas(machine-independent way).
e. LineNumberInputStream
Sebuah subclass FilterInputStream yang memungkinkan pemeriksaan posisi dari nomor baris tertentu.
f. PushbackInputStream
Sebuah subclass dari class FilterInputStream yang memungkinkan byte diproses balik atau tidak dibaca ke bentuk streamnya.

Method-method dalam inputStream :
·         read( ) menghasilkan representasi integer dari byte selanjutnya yang tersedia pada masukan
·         read (byte b[]) mencoba membaca sejumlah byte b.length dan akan menyimpannya pada array b dan menghasilkan jumlah byte actual yang berhasil dibaca.
·         read (byte b[], int off, int len) membaca sejumlah len byte dan menyimpanya pada array b mulai b[off], menghasilkan jumlah byte yang berhasil dibaca.
·         skip(long n) meloncati sejumlah n byte masukan dan menghasilkan jumlah byte yang diloncati.
·         available( ) menhasilkan jumlah byte masukan yang saat itu tersedia untuk dibaca.
·         close ( ) menutup sumber masukan.
·         mark ( int readlimit) menempatkan tandsa titik yang berlaku pada aliran masukan yang akan berlaku sampai terbaca readlimit byte.
·         reset ( ) menghasilkan penunjuk masukan pada tanda yang diberikan sebelumnya.
·         markSupported( ) menghasilkan true jika mark/reset didukung pada aliran ini.



   B. OutputStream
Merupakan class abstrak yang mendefinisikan aliran kluaran. Semua methode pada class ini menghasilkan nilai void dan melemparkan IOException. Subclass dari OutputStream adalah :

FileOuputStream
FileOutputStream akan menciptakan file sebelum membukanya untuk keluaran saat membuat obyeknya. Isi suatu file akan hilang jika kita membukanya dengan FileOuputStream
Contoh : FileOutputStream a = new FileOutputStream(“data.txt”);
FileOutputStream a = new FileOutputStream(“data.txt”,true); //jika mau penambahan isi file

ByteArrayOutputStream
Memilki array byte sebagai tujuan keluaran memberikan sejumlah kesempatan bagus untuk OutputStream dan class ByteArrayOutputStream mengambil keuntungan dari hal ini. Memiliki 2 konstruktor. Dalam bentuk pertama dihasilkan penyangga 32 byte dan yang kedua sama dengan ukuran yang sama dengan jumlah byte dalam argumenya., yaitu :
 ByteArrayOutputStream input1 = new ByteArrayOutputStream(); //32 byte
ByteArrayOutputStream input2 = new ByteArrayOutputStream(1024); //1024 byte

PipedOutputStream
Seharusnya tersambung ke sebuah PipedInputStream. Stream ini secara khusus digunakan oleh dua urutan dimana didalamnya satu dari urutan tersebut menulis data ke bentuk streamnya sementara urutan yang lain membaca dari PipedInputStream tujuan

FilterOutputStream
Untuk menambah fungsi ke class dasar OutputStream, Anda dapat menggunakan class stream filter.berikut ini beberapa dari class tersebut :
a. BufferedOutputStream
Sebuah subclass dari FilterOutputStream yang memungkinkan penyimpanan output sementara untuk proses penulisan byte yang lebih efisien. Memungkinkan penulisan byte ke bentuk dasar output stream tanpa menyebabkan diperlukannya pemanggilan dasar sistem untuk setiap penulisan byte.
b. FilterOutputStream
Untuk menulis stream byte yang telah difilter, yang mana mungkin dipindahkan ke source dasar dari data sepanjang proses dan menyediakan fungsi tambahan.
c. ObjectOutputStream
Digunakan untuk serialisasi object. Serialisasi object dan data primitif untuk sebuah OutputStream.
d. DataOutputStream
Sebuah subclass dari FilterOutputStream yang menjalankan aplikasi penulisan data primitif ke output stream dasar ke dalam sebuah mesin yang bebas berjalan (machineindependentway).
e. PrintStream
Sebuah subclass dari FilterOutputStream yang menyediakan kemampuan untuk mencetak representasi dari nilai data yang bermacam-macam dengan tepat.

Method pada OutputStream :
  • write(int b) menuliskan byte tunggal ke aliran keluaran
  • write(byte b[], int off, int len) menuliskan bagian len byte array b dimulai dari b[off].
  • flush( ) mengakhiri keadaan keluaran sehingga semua penyangga dibersihkan.
  • close( ) menutup aliran keluaran.



Contoh :
import java.io.*;
class MengcopyFile
{
void copy(String input, String output)
{
int data;
try
{ FileInputStream baca = new FileInputStream(input);
FileOutputStream tulis = new FileOutputStream(output);
while ((data = baca.read()) != -1) //selama file input terbaca
{ tulis.write(data);
baca.close(); //menutup file input
tulis.close(); //menutup file output
}
catch (IOException ie) { System.out.println(“Ada error”+ie); } }
public static void main(String args[]) thrown Exception{
String input = args[0]; //menyimpan parameter ke-0 dari command java
String output = args[1]; //menyimpan parameter ke-1dari command java
MencopyFile a = new MengcopyFile(); //membuat objek kelas
a.copy(input, output); //memanggil method copy
}
}
Out :
C:\java MengcopyFile xfile.txt saya.txt
Ket : Misalkan anda telah membuat file dengan nama xfile pada drive c kemudian isinya akan dikopi pada file saya . Maka jika dicompile isi file xfile akan sama dengan isi file saya yang dimasukkan sebagai parameter dari command java.

Tidak ada komentar:

Posting Komentar