序列化流:写操作
将对象变成流数据进行传输,例如保存在一个文件里,在网络中传输。对象 – 流数据(ObjectOutputStream)

反序列化流:读操作
将文件中的流对象数据或者网络中的流对象数据还原成对象。流数据 – 对象(ObjectInputStream)

注意点:
序列化对象要实现序列化接口

        // 创建反序列化对象
        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("user.txt"));
        //流数据--对象
        Object o=ois.readObject();
        //释放
        ois.close();
        System.out.println(o);
    }

    private static void write() throws IOException {
        // 创建序列化流对象
        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("user.txt"));
        //对象序列化
        oos.writeObject(new User("lisi", 20));
        //释放
        oos.close();
    }

输出:
User [name=lisi]



/*
 * Serializable接口以启用其序列化功能,未实现此接口的类将无法使其任何状态序列化或反序列化。
 *使用transient关键字声明不需要序列化的成员变量
 */
public class User  implements Serializable{
    //序列化id
    private static final long serialVersionUID = -2071565876962058344L;
    private String name;
   //transient关键字声明不需要序列化的成员变量
    private transient int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User [name=" + name + "]";
    }
    public User(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public User() {
        super();
    }



}
posted on 2017-04-06 11:56  2637282556  阅读(151)  评论(0编辑  收藏  举报