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对象到硬盘。Serialjava.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();//****************ObjectInputStreamObjectInputStream ois = new ObjectInputStream(new FileInputStream("temp06"));Object o = ois.readObject();System.out.println(o);ois.close();} }