java序列化與反序列化

開始學習java序列化與反序列化,寫出了個初步代碼。
這是一個用戶類:

import java.io.Serializable;

public class User implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public String name;
	public String sex;
	public int age;

	public User() {
	}

	public User(String name, String sex, int age) {
		this.name = name;
		this.sex = sex;
		this.age = age;
	}
	
	public String toString(){
		return "用戶名:"+name+"性別:"+sex+"年齡:"+age;
	}

}

下面將對其進行序列化與反序列化操作:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Date;

public class Test {
	public static void serialize(String filePath) {
		try {
			ObjectOutputStream out = new ObjectOutputStream(
					new FileOutputStream(filePath));
			out.writeObject("序列化時間爲:");
			out.writeObject(new Date());
			User user = new User("admin", "male", 10);
			out.writeObject(user);
			out.close();
		} catch (Exception e) {
			System.out.println(e.toString());
		}
	}
	public static void deserialize(String filePath){
		try {
			ObjectInputStream in=new ObjectInputStream(new FileInputStream(filePath));
			String time=(String)(in.readObject());
			Date date=(Date)(in.readObject());
			User user=(User)(in.readObject());
			System.out.println(time);
			System.out.println(date);
			System.out.println(user);
		} catch (Exception e) {
			System.out.println(e.toString());
		}
	}
	public static  void main(String[]args){
		serialize("E:\\testserialize.txt");
		System.out.println("serialize completed!");
		deserialize("E:\\testserialize.txt");
		System.out.println("deserialize completed!");
	}
	
}



運行之後,在控制檯輸出:
serialize completed!
序列化時間爲:
Thu Jun 14 22:33:03 CST 2012
用戶名:admin性別:male年齡:10
deserialize completed!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章