IO包装流--ObjectInputStream/OuputStream

52 阅读1分钟

概述

这个ObjectInputStream也是一个包装流,不过这个类主要是用于对象的存储于读取的。直接把数据的数值以及数据类型都一起存下来.
在进行序列化对象的时候,应该把这个对象放在一个公共的位置上。因为存储到文件的时候,会把这个对象的类信息也存进去。

ObjectOutputStream ois= new ObjectOutputStream(new FileOutputStream(path));
ois.writeInt(10);
ois.writeDouble(22.2);
ois.writeUTF("zzw");
Dog zzq = new Dog("zd", 35);
ois.writeObject(zzq);
ois.close();
System.out.println(ois.readInt());
System.out.println(ois.readDouble());
System.out.println(ois.readUTF());
Dog dog = (Dog) ois.readObject();
System.out.println(dog.age);

几个细节

  • 当对象的属性用static或者transit修饰的时候,这个属性就不能被序列化传输了,传输的结果为null。
  • 读写的顺序要一致哈!因为读的时候是按照存的顺序一个对象一个对象地读的。要不会发生读取类型错误。
  • 记得实现Serializable接口,实现了这个接口才能进行序列化