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).
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.
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.
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