Minggu, 11 Maret 2012

Konsep Dasar IO Stream

Tipe-Tipe Stream yang Umum Digunakan
Stream Karakter dan Byte
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
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
Class file  merupakan bukan sebuah class stream. Class adalah sebuah perwakilan dari abstraksi dari file-file nyata dan nama path direktori. Class file penting karena class-class stream memanipulasi object File
Memiliki 4 konstruktor











Class File menyediakan beberapa method untuk memanipulasi file dan direktori. Berikut
Contoh class file
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 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();
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:");
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;
      }
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.");
      }
   }
}
Class Reader
Bagian ini menggambarkan stream karakter yang digunakan untuk membaca.
Class Reader terdiri atas beberapa method untuk membaca karakter. berikut ini adalah
beberapa method class :

Class Node Reader
Berikut ini adalah beberapa dasar class Reader:
Class-Class Filter Reader
Untuk menambah fungsi ke class-class dasar Reader, Anda dapat menggunakan class
stream filter. Berikut ini adalah beberapa dari class-class tersebut :
Class-Class Writer
Writer Method
Class Writer terdiri atas beberapa method untuk menulis karakter. Berikut ini adalah
beberapa method class :

Node Writer Classes

Berikut ini beberapa dasar class Writer:
Filter Writer Classes

Untuk menambah fungsionalitas ke dasar class Writer, Anda dapat menggunakan class

stream filter.Terdapat beberapa class-class:





Contoh Dasar Reader/Writer
Contoh penggantian menggunakan class FileReader dan FileWriter. Dalam contoh ini,
program membaca dari file yang khusus oleh user dan mengkopi isi dari file ke file lain.
import java.io.*;
class CopyFile {
void copy(String input, String output) {
FileReader reader;
FileWriter writer;
int data;
try {
reader = new FileReader(input);
writer = new FileWriter(output);
while ((data = reader.read()) != -1) {
writer.write(data);
}
reader.close();
writer.close();
} catch (IOException ie) {
ie.printStackTrace();
}
public static void main(String args[]) {
String inputFile = args[0];
String outputFile = args[1];
CopyFile cf = new CopyFile();
cf.copy(inputFile, outputFile);
}
}
Merubah Contoh Reader/Writer
Contoh pengganti hampir sama dengan contoh sebelumnya tetapi lebih efisien.
Walaupun membaca dan menulis ke stream sekali saja, karakter membaca yang
pertama disimpan dalam buffer sebelum penulisan karakter baris per baris. Program
menggunakan teknik dari perangkaian stream dimana clas FileReader dan FileWriter
didekorasi dengan class BufferedReader dan BufferedWriter, berurutan.
import java.io.*;
class CopyFile {
void copy(String input, String output) {
BufferedReader reader;
BufferedWriter writer;
String data;
try {
reader = new BufferedReader(new FileReader(input));
writer = new BufferedWriter(new FileWriter(output));
while ((data = reader.readLine()) != null) {
writer.write(data, 0, data.length());
}
reader.close();
writer.close();
} catch (IOException ie) {
ie.printStackTrace();
}
}
public static void main(String args[]) {
String inputFile = args[0];
String outputFile = args[1];
CopyFile cf = new CopyFile();
cf.copy(inputFile, outputFile);
}
}
Class InputStream

Bagian ini memberikan gambaran perbedaan stream byte yang digunakan membaca.

Class-Class Node InputStream
Berikut ini merupakan beberapaclass-class dasar InputStream :




Class-class Filter InputStream
Untuk menambah fungsi ke class dasar InputStream, Anda dapat menggunakan class






stream filter. Berikut ini adalah beberapa dari class-class tersebut :
Class-Class OutputStream
Pada pembahasan ini memberikan sebuah pandangan tentang byte stream yang berbeda
yang digunakan dalam proses penulisan.
Method OutputStream
Class OutputStream terdiri atas beberapa method untuk menulis data byte. Berikut ini
adalah beberapa dari class methodnya :

Class-Class Node OutputStream
Berikut ini adalah beberapa dari class dasar OutputStream :


 Sumber : Modul JENI

Tidak ada komentar:

Posting Komentar