Minggu, 12 Februari 2012

Tipe-Tipe Stream yang Umum digunakan

1. Stream Karakter dan Byte
Ada dua tipe Stream, yaitu stream karakter dan byte. Stream byte adalah abstraksi file atau alat untuk data biner sedangkan 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, superclass 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. Class InputStream dan class Reader adalah superclass-superclassdari 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 memperoleh informasi dari stream ini. sementara output stream disebut juga stream hasil(sink stream).

3. Node dan Stream Filter
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 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.
Sesi ini berturut-turut mempunyai sebuah tujuan dari class-class stream yang berbeda., daftar dari class-class ini, pada dokumentasi Java's API.

 4. Class File
Walaupun class File bukan merupakan class stream, ini sesuatu yag penting bahwa kita mempelajari ini sejak class-class stream merupakan file-file yang telah dimanipulasi. Class adalah sebuah perwakilan dari abstraksi dari file-file nyata dan nama path direktori.

Untuk meng-instantiate sebuah object File, Anda dapat menggunakan constructor berikut ini:
  • File(String pathname) : Instantiate sebuah object File dengan nama path khusus sebagai nama filenya. Nama filenya mungkin salah satu menjadi penuh( sebagai contoh, isi dengan path yang lengkap) atau mungkin terdiri atas namafile itu sendiri dan diasumsikan menjadi diisi dalam direktori tersebut.
Class File menyediakan beberapa method untuk memanipulasi file dan direktori. Berikut ini beberapa dari method-method tersebut.
  • public String getName(): Mengembalikan nilai nama file atau nama direktori dari object File ini.
  • public boolean exists(): Menguji apakah sebuah file atau sebuah direktori masih ada atau tidak
  • public long length(): Mengembalikan nilai ukuran dari file.
  • public long lastModified(): Mengembalikan nilai tanggal dalam milidetik ketika file terakhir kali dimodifikasi.
  • public boolean canRead(): Mengembalikan nilai true jika dijinkan untuk membaca dari file. Sebaliknya, nilai pengembaliannya bernilai false.
  • public boolean canWrite(): mengembalikan nilai true jika diijinkan untuk menulis ke sebuah file. Sebaliknya, nilai pengembaliannya bernilai false.
  • public boolean isFile(): Menguji apakah object ini berupa sebuah file, yaitu persepsi normal kita tentang apa itu sebuah file (bukan sebuah direktori) atau bukan.
  • public boolean isDirectory(): Menguji apakah object ini adalah sebuah direktori atau bukan.
  • public String[] list():Mengembalikan nilai daftar file dan subdirektori yang ada dalam object ini. Object ini haruslah berupa sebuah direktori.
  • public void mkdir(): Membuat sebuah direktori yang merupakan abstraksi nama path ini.
  • public void delete(): Membuang file atau direktori yang sebenarnya diwakili oleh object File tersebut.

Mari kita melihat bagaimana method ini bekerja berdasarkan contoh berikut ini :
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."); /* membuat sebuah temporary directory . */
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();
System.out.println(fileName + (fn.exists()? "exists": "does not exist"));
return;
}
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:");
for (int i = 0; i < content.length; i++) {
System.out.println(content[i]);
}
}
if (!fn.canRead()) {
System.out.println(fileName + " is not readable.");
return;
}
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.");
}
}
}

Tidak ada komentar:

Posting Komentar