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(); } }