序列化在IO中讀寫對(duì)象的使用
序列化就是一種用來(lái)處理對(duì)象流的機(jī)制,所謂對(duì)象流也就是將對(duì)象的內(nèi)容進(jìn)行流化。可以對(duì)流化后的對(duì)象進(jìn)行讀寫操作,也可將流化后的對(duì)象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對(duì)對(duì)象流進(jìn)行讀寫操作時(shí)所引發(fā)的問(wèn)題。
序列化的實(shí)現(xiàn):將需要被序列化的類實(shí)現(xiàn)Serializable接口,然后使用一個(gè)輸出流(如:FileOutputStream)來(lái)構(gòu)造一個(gè)ObjectOutputStream(對(duì)象流)對(duì)象,接著,使用ObjectOutputStream對(duì)象的writeObject(Object obj)方法就可以將參數(shù)為obj的對(duì)象寫出(即保存其狀態(tài)),要恢復(fù)的話則用輸入流。
寫對(duì)象和讀對(duì)象的時(shí)候一定要使用序列化:
import java.io.*;
class Product implements Serializable {
private static final long serialVersionUID = 1L;
private float price;
private float tax;
public Product(float price) {
this.price = price;
tax = (float)(price*0.20);
}
public String toString() {
return "price:"+price+",tax:"+tax;
}
}
public class CmdDemo {
public static void main(String[] strtb) throws Exception {
Product p1 = new Product(100);
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream
("d:\product.txt"));
os.writeObject(p1);
os.close();
ObjectInputStream is = new ObjectInputStream(new FileInputStream
("d:\product.txt"));
Product p2 = (Product) is.readObject();
System.out.println(p2.toString());
}
}
posted on 2013-09-17 15:12 chen11-1 閱讀(279) 評(píng)論(0) 編輯 收藏