Rabu, 14 Maret 2012

Stream I/O

Pengertian Stream IO :



I/O  adalah singkatan dari Input / Output dan mengacu pada transfer data ke atau dari aplikasi.  Stream adalah Keadaan dari sebuah file atau sebuah device yang memungkinkan rangkaian item dapat dibaca atau ditulis.
Stream juga bisa disebut representasi abstrak dari aliran data yang berjalan dari sumber (input stream) ke tujuan (output stream).
Contoh:
Membaca dan menulis file di dan ke harddisk
Membaca dan menulis teks ke console.
Membaca dan menulis melalui network

Tipe-Tipe Stream yang Umum Digunakan 

1 Stream Karakter dan ByteSeperti yang telah disebutkan sebelumnya, secara umum ada dua tipe dari stream, yaitu stream karakter dan byte. Kita hanya mengulang perbedaan mendasar antara keduanya. Stream byte adalah abstraksi file atau alat untuk data biner sedangkan stream karakter adalah untuk karakter Unicode. Class InputStream adalah abstraksi class root untuk semua input stream byte sedangkan  class OutputStream adalah class root abstraksi dari semua output stream byte. 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.

2 Input dan Output Stream
Stream juga dikategorikan berdasarkan apakah mereka digunakan untuk membaca atau menulis stream.Walaupun ini sudah cukup nyata, Anda diperbolehkan untuk membaca dari input stream tapi tidak menulisnya. Di lain pihak, Anda diperbolehkan untuk menulis output streams tapi tidak membacanya. Class InputStream dan class Reader adalah superclass-superclass dari semua input stream. Class OutputStream dan class Writer adalah class-class root dari semua output 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).

3 Node dan Stream Filter
Kini package java.io membedakan antara node dan stream filter. Sebuah stream node adalah sebuah stream dengan fungsi dasar berupa fungsi membaca atau menulis dari sebuah lokasi khusus seperti pada disk atau dari jaringan. Tipe-tipe dari stream node terdiri atas file, memory dan jalur data. Stream filter, di lain pihak, diletakkan pada layer stream node diantara threads atau proses untuk menyediakan fungsi tambahan yang tidak dapat ditemukan dalam stream node oleh stream node itu sendiri. Penambahan lapisan pada sebuah stream node disebut dengan stream chaining.


KONSEP DASAR 

Untuk membaca, program membuka stream pada sumber ( file, memory, socket) dan membaca informasi secara sekuensial.


Untuk menulis, program mengirim informasi ke tujuan dengan cara membuka stream tujuan, selanjutnya menulis informasi secara sekuensial.
 
 Byte Stream
 
 Character Stream
 

 Cara menggunakan Stream:
-input stream:

1.     Membuat objek yg berasosiasi dengan data source Contoh : FileInputStream
2.     Membaca informasi dari stream dengan menggunakan method objek tersebut Contoh: read()
3.     Bila selesai, panggil method close. 
 -output stream:

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

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.
Hirarki Class InputStream dan OutputStream
InputStream
·FileInputStream 
·ByteArrayInputStream 
·FilterInputStream 
·DataInputStream 
·BufferedInputStream 
·PushbackInputStream 
·ObjectInputStream 
·PipedInputStream 
·SequenceInputStream
 OutputStream
·FileOutputStream 
·ByteArrayOutputStream 
·FilterOutputStream
·DataOutputStream
·BufferedOutputStream
·PrintStream
·ObjectOutputStream
·PipedOutputStream 


Contoh Program

import java.io.*;
public class FileInfoClass {
   public static void main(String args[]) {
      String fileName = args[0];
      File fn = new File(fileName);
      System.out.println("Name: " + fn.getName());
      if (!fn.exists()) {
         System.out.println(fileName + " does not exists.");
//bersambung...

/* Membuat sebuah directory sementara  */
         System.out.println("Creating temp
                             directory...");
         fileName = "temp";
         fn = new File(fileName);
         fn.mkdir();
         System.out.println(fileName +
             (fn.exists()? "exists": "does not exist"));
         System.out.println("Deleting temp  directory...");
         fn.delete();
//bersambung...


System.out.println(fileName +
            (fn.exists()? "exists": "does not exist"));
         return;
      }  //end of: if (!fn.exists())


      System.out.println(fileName + " is a " +
                 (fn.isFile()? "file." :"directory."));
      if (fn.isDirectory()) {
         String content[] = fn.list();
         System.out.println("The content of this
                             directory:");
//bersambung...

for (int i = 0; i < content.length; i++) {
            System.out.println(content[i]);
         }
      } //end of: if (fn.isDirectory())

      if (!fn.canRead()) {
         System.out.println(fileName 
                            + " is not readable.");
         return;
      }
//bersambung...


 System.out.println(fileName + " is " + fn.length()
                         + " bytes long.");
      System.out.println(fileName + " is " +
                    fn.lastModified() + " bytes long.");

      if (!fn.canWrite()) {
         System.out.println(fileName 
                            + " is not writable.");
      }
   }
}


Enkripsi

Sebuah proses data encoding untuk mencegah pihak yang tidak berwenang melihat atau memodifikasinya.

Bila Anda bukan seorang paranoid, mungkin sekarang hal tersebut dapat berubah. Bila Anda menggunakan sebuah PC, banyak orang jahat yang dapat mencegat e-mail yang Anda kirim, dan rekan kerja Anda dapat membaca dokumen dari proyek yang tengah Anda kerjakan untuk keuntungan karir mereka. Ada sebuah teknologi yang dapat melindungi data Anda dari mata-mata yang selalu ingin mengintip, enkripsi. Enkripsi adalah sebuah proses data encoding atau pemecahan kode data yang hanya dapat dibaca bila kita memiliki sebuah kunci khusus. Dulu enkripsi hanya berkembang di dunia spionase/perang, tetapi saat ini teknologi tersebut telah merambah ke sektor bisnis dan kalangan pengguna rumahan: Enkripsi adalah tool terbaik untuk melindungi data, privasi, dan rahasia Anda.
Yang perlu Anda ketahui tentang enkripsi:
Mencegah akses yang tidak diinginkan pada dokumen dan pesan e-mail.
Level enkripsi yang tinggi sukar untuk dibongkar.
Perubahan dalam peraturan ekspor teknologi kriptografi akan meningkatkan penjualan software enkripsi.
Sebuah program enkripsi, baik itu yang berdiri sendiri (stand-alone) atau sudah terdapat pada aplikasi e-mail client Anda, memiliki proses yang sama: Data melewati sebuah formula matematis yang disebut algoritma, yang kemudian mengubahnya menjadi data terenkripsi yang disebut sebagai ciphertext. Formula ini memerlukan sebuah variabel dari Anda–yang disebut kunci–untuk mengembalikan data tersebut kembali ke bentuk asal, sehingga sangat sulit, bahkan hampir tidak mungkin, seseorang dapat memecahkan kode enkripsi tersebut. Tetapi tentu saja hal ini tidak berlaku jika orang tersebut berhasil mencuri kode enkripsi dari Anda. Jadi, berhati-hatilah dengan kode enkripsi yang Anda miliki.









0 komentar:

Posting Komentar

ABOUT

selamat menikmati blog saya... semoga puass.. kritik dan saran sangat membantu

Slider(Do not Edit Here!)

Navigation

terima kasih atas kunjungan

Copyright Text