Java 語言能夠流行於網路昌行的今天,很大的原因是因為其很好的駕馭了串流輸出入。網路程式多半時間都在處理簡單的輸入和輸出,也就是從一個系統向另一個系統的移動位元組。串流是一個抽像的觀念,當程式需要輸入資料,或輸出資料,則就會開啟一個輸入或輸出的資料源的串流。而通常有三種不同的I/O需要考慮:檔案,控制台,網路連接。Java 所處理的串流分為兩種:位元組串流與字元串流。分別用4個抽像類別來表示:InputStream、OutputStream、Reader、Writer。前二者專門處理位元組串流,後二者處理則處理字元串流。
如下程式:
public class IOStream {
public static void main(String[] args) throws FileNotFoundException、IOException、 ClassNotFoundException{
FileOutputStream fos = new FileOutputStream("t.tmp"); //檔案輸出串流
ObjectOutputStream oos = new ObjectOutputStream(fos);
// 透過物件序列化的方式傳送資料
oos.writeInt(12345); //傳送不同的資料型態
oos.writeObject("Today");
oos.writeObject(new Date());
oos.close();
FileInputStream fis = new FileInputStream("t.tmp");
ObjectInputStream ois = new ObjectInputStream(fis);
//透過物件序列化的方式接收資料
int i = ois.readInt();
System.out.println("i="+i);
String today = (String) ois.readObject();
System.out.println(today);
Date date = (Date) ois.readObject();
System.out.println(date.toString());
ois.close();
}
}
使用了Java "物件序列化;(Object Serialization) 功能實現了Serializable 介面的物件,將其轉化為一個位元組序列,並且再完全回復原來的樣子。
其好處在於:不限於檔案,在網路上也能夠進行,因此如果在Windows建立一個物件,將其序列化,然後透過網路送給Linux機器,可以準確無誤地重新裝配回來。
2010年1月1日 星期五
訂閱:
文章 (Atom)