Java_io体系之ObjectInputStream、ObjectOutputStream简介、走进源码及示例――11(三)

2014-11-24 08:05:14 · 作者: · 浏览: 1
); StudentDTO sread = (StudentDTO)ois.readObject(); /** * 当statu的类型是int时的result: sno: 1 name: chy statu: 5 * 当statu的修饰符是static时的result: sno: 1 name: chy statu: 10 * 当statu的修饰符是transient时的result: sno: 1 name: chy statu: 0 */ System.out.println(sread.toString()); } public static void main(String[] args) throws IOException, ClassNotFoundException { testObjectOutputStream(); testObjectInputStream(); } }
这里不再将statu的类型为static、transient的代码贴出来、只是改变修饰符、可自己修改。

        这里要注意一个地方、就是在测试ObjectInputStream的时候、多创建了一个没有使用的StudentDTO s、目的是为了防止后面将StudentDTO中的一个变量的类型改成static的时候、因为读取的对象中这个值与写入的时候一样而造成static变量可以写入底层流的假象。 
 
shuchu

总结:

ObjectOutputStream、ObjectInputStream这对流本质上就是操作序列化对象、用于在介质间进行传递序列化对象的属性、当然、当我们想要保存对象的某个属性的时候可以使用DataOutputStream、DataInputStream这对流、但是当我们要保存的属性恰好组成了一个对象、并且这个对象还有版本、作者等信息时、DataOutputStream这对流就不能满足我们了、其实如上面所说、ObjectInputStream这对流也是间接实现了DataOutputStream这对流的接口、并且中间穿插了一个ObjectOut这对接口、这对接口对DataOut这对进行了扩展、满足传输对象、数组、字符串。


更多IO内容:java_io 体系之目录