WELCOME TO MY BLOG 다이앤

Kamis, 08 Maret 2012

I/O Stream

TTipe – Tipe Stream Yang Umum :
§  Stream Karakter dan Byte
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.
§  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).
§  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.

·         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.");
}
}
}

Semoga berguna :)

0 komentar:

Posting Komentar