開始學習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!