开始学习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!
- 序列化时间为:
- Wed Jun 13 23:31:54 CST 2012
- 用户名:admin性别:male年龄:10
- deserialize completed!