Senin, 13 Oktober 2014

Contoh Program Pengimputan menggunakan Stream pada Java

Selamat malam sahabat bloq :)
Okey hari ini aku mau posting "Contoh Program Pengimputan menggunakan Stream pada Java " sebelum ke contohnya sebaiknya Kita sama-sama menegenal Stream terlebih dahulu,
okey klo begitu mari sama-sama kita menyimak penjelasan tentang Stream


1. STREAM     

     Program Java melakukan proses I/O melalui stream, yaitu sebuah abstraksi yang dapat memberikan atau mendapatkan informasi. Stream dapat dihubungkan dengan peralatan fisik yang terdapat dalam sistem I/O Java, seperti keyboard, file, layar console, soket jaringan, dan lainnya. Walaupun dihubungkan dengan peralatanfisik yang berbeda, cara kerja stream selalu sama, sehingga kode program yang ditulis juga sama untuk masing-masing peralatan fisik. Misalnya, untuk melakukan penulisan sebuah teks ke layar console maupun ke dalam file, maka dapat digunakan kelas dan method yang sama.
     Stream ada dua jenis, yaitu stream byte dan stream karakter. Stream byte digunakan untuk memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk menulis dan membaca file biner. Sedangkan stream karakter pada proses I/O yang melibatkan data-data berbentuk karakter, misalnya proses baca/tulis ke suatu file teks, dengan menggunakan karakter Unicode.
     Pendefinisian stream dilakukan dengan menggunakan empat kelas abstrak, yaitu InputStream dan OutputStream, sebagai superclass untuk kelas-kelas dalam kategori stream byte, dan kelas abstrak Reader dan Writer untuk kategori stream karakter. Melalui proses pewarisan (inheritance), semua kelas yang diturunkan dari 
InputStream maupun Reader akan memiliki method read(), yang digunakan dalam
proses pembacaan data. Adapun untuk proses penulisan data digunakan method
write() dalam semua kelas yang diturunkan dari OutputStream maupun Writer.
Daftar beberapa kelas dalam paket java.io yang termasuk dalam kategori stream byte
ditunjukkan pada Tabel 1., sedangkan kelas-kelas dalam kategori stream karakter
                                                      
                                                           Tabel 1. Kelas-kelas stream byte
Class
Deskripsi
BufferedInputStream
Byte input Stream yang menggunakan buffer
BufferedOutputStream
Byte output Stream yang menggunakan buffer
ByteArrayInputStream
Byte input stream yang membaca dari array bertype byte (InputStream).
ByteArrayOutputStream
Byte output Stream yang menulis ke array bertype byte (OutputStream).
DataInputStream
Byte input stream yang memiliki method untuk membaca input yang bertype data standart Java
DataOutputStream
Byte output stream yang memiliki method untuk menuliskan output yang bertype data standart Java.

















DataOutputStream
Byte output stream yang memiliki method untuk menuliskan output yang bertype data standart Java.
FileInputStream
Byte input stream yang membaca dari file.
FileOutputStream
FileOutputStream Byte output stream yang menuliskan ke file.
PrintStream
Byte output Stream yang menambahkan method untuk memudahkan proses menulis ke suatu output. Method yang ditambahkan adalah print() dan println(). Object yang referensinya dipegang oleh Sytem.out juga bertipe PrintStream.

















     Semua program Java otomatis akan mengimpor paket java.lang yang
mendefinisikan sebuah kelas bernama System yang berkaitan dengan lingkungan
runtime. Kelas System juga mendefinisikan tiga variabel stream, yaitu in, out, dan
err, dimana data-datanya dideklarasikan sebagai public atau static. Dengan demikian
variabel-variabel tersebut dapat digunakan tanpa harus membentuk objek dari kelas
System terlebih dahulu. System.out adalah stream output standar dengan default
layar console. System.in adalah objek dari tipe PrintStream, defaultnya berupa
keyboard dan mengacu pada stream input standar. Sedangkan pada stream error
standar terdapat System.err yang secara default berupa layar console. System.out dan System.err adalah objek dari tipe PrintStream dan mempunyai cara kerja yang
sama, yaitu mengeluarkan pesan kesalahan ke layar console.

                                      Tabel 2. Kelas-kelas stream karakter
Class
Deskripsi
BufferedReader
Input character stream yang menggunakan buffer.
BufferedWriter
Output character stream yang menggunakan buffer
CharArrayReader
Input character Stream yang membaca dari array bertipe Char.
CharArrayWriter
Output character Stream yang menulis ke array bertipe Char.
FileReader
output character stream yang menulis ke file.
FileWriter
Byte output stream yang memiliki method untuk menuliskan output yang bertype data standart Java.
InputStreamReader
Input stream yang mengkonversi dari byte ke char
OutputStreamWriter
Output stream yang mengkonversi dari char ke byte.
PrintWriter
Output karakter stream yang menambahkan method untuk memudahkan proses menulis ke suatu output. Method yang di tambahkan yaitu print() dan println().
StringReader
Input character Stream yang membaca dari String
StringWriter
Output character stream yang menulis ke String






























2. BYTE STREAM
     Class yang mengimplementasikan Byte Stream merupakan turunan dari OutputStream.class dan InputStream.class. Secara umum cara penggunaan class tersebut adalah sama. Secara dasar perlu diketahui method yang dideklarasikan oleh superclass InputStream dan OutputStream untuk dapat menggunakan class-class tersebut. Berikut ini adalah daftar method yang dideklarasikan oleh kedua superclass tersebut :

                              Tabel 2. Daftar method yang didefenisikan oleh class InputStream.

Method
Fungsi
Int Available()
Mengembalikan jumlah Byte yang dapat dibaca / dikembalikan oleh InputStream ini.
Void close()
Menutup InputStreamdan membebaskan semua resource yang berhubungan dengan Stream ini.
Void mark (intreadLimit)
Menandai posisisaat ini dalam InputStream yang akan tetap valid hingga sebuah ReadLimit byte dibaca.
Boolean markSupported()
Mengembalikan nilai true jika stream ini mendukung method mark() dan reset().
Int read()
Membaca sejumlah byte berikutnya dari InputStream, dan mengembalikan nilainyasebagai integer.
Int read(byte [] b)
Membaca sejumlah byte dari InputStream meletakkannya kedalam buffer array b dan mengembalikan jumlah byte yang berhasil dibaca.
Int read(byte [] b, int offset, int length)
Membaca sejumlah byte dari InputStreammeletakkannya ke dalam buffer array b mulai dari posisi offset (b[off]) dan mengembalikkan jumlah byte yang berhasil dibaca
Void reset()
Mengembalikkan posisi pembacaan stream ke posisi dimana terakhir kali method mark() dipanggil.
Long skip()
Mengacuhkan / melompati (skip) sejumlah n byte dari InputStream.

































      Tabel 4 Daftar method yang didefiniskan oleh class OutputStream
Method
Fungsi
Void close()
Menutup OutputStream dan membebaskan semua resource yang behubungan dengan stream ini.
Void flush()
Mengosongkan buffer dan menuliskan semua output ke tujuannya.
Void write(byte [] b)
Menuliskan isi array ke OutputStream
Void write(byte [] b, int offset, int length)
Menuliskan isi array ke OutputStream mulai dari posisi offset sebanyak length
Abstract void write(int b)
Menuliskan sebuah byte data ke outputStream












Latihan :
   1.   Membuat Program dengan input karakter :
        import java.io.*;
         public class Inputkarakter {
              public static void main(String[] args) throws IOException {
                  System.out.println("Masukkan Sembarang Karakter : ");
                  InputStreamReader in =new InputStreamReader(System.in);
                  BufferedReader br = new BufferedReader(in);
                  char ch = (char)br.read();
                  System.out.println("Karakter yang anda masukkan yaitu : \'"+ ch +"\'");
           }
       }

 2.    Membuat Program dengan membaca isi dari sebuah file :
      import java.io.*;
      public class BacaFile {
                public static void main (String [] args) {
                FileInputStream input = null;
                int data; // membuka fila             
                   try {
                   input = new FileInputStream("E:/LAB/TUGAS/fil1.txt");
                   }catch (FileNotFoundException fn) {
                         System.out.println("File gak ketemu");
                   } //Memebaca data dari file
                   try {
                   while ((data = input.read()) != -1) {
                        System.out.println((char) data);
                   }
                        System.out.println();
                   } catch(IOException in){
                         System.out.println(in.getMessage());
                   }//menutup file
                  try {
                  input.close();
               } catch(IOException e) {}
    
            }

}





Tidak ada komentar:

Posting Komentar