首页 > 代码库 > IO流入门-第十二章-ObjectInputStream_ObjectOutputStream

IO流入门-第十二章-ObjectInputStream_ObjectOutputStream

DataInputStream和DataOutputStream基本用法和方法示例,序列化和反序列化

import java.io.Serializable;    //该接口是一个“可序列化”的 ,没有任何方法,是一个标识接口,还有Cloneable    

/*
    标识接口的作用:标识作用,JVM如果看到对象实现了某个标识接口,会对它特殊待遇,会给该类添加一个属性,static final long serialVersionUID=xxx,
   最好是自己指定一个唯一的,这样不会产生类的兼容问题。
*/ public class User implements Serializable {
   String name; User(String name){
this.name = name; }
  //transient关键字修饰,表示该属性不参加序列化
  transient int age;
public String toString(){ return "hello " + name; } }

 

/*
    对象 内存--->硬盘:序列化;硬盘--->内存:反序列化
    java.io.ObjectOutputStream:序列化java对象到硬盘。Serial
    java.io.ObjectInputStream:将硬盘中的数据反序列化到JVM内存。Deserial

*/
import java.io.*;

public class ObjectOutputStreamTest01 
{
    public static void main(String[] args) throws Exception
    {
        User u = new User("张三");

        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("temp06"));

        //
        oos.writeObject(u);

        oos.flush();

        oos.close();

        //****************ObjectInputStream
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("temp06"));

        Object o = ois.readObject();

        System.out.println(o);

        ois.close();
    }
}

 

IO流入门-第十二章-ObjectInputStream_ObjectOutputStream