开始学习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!