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 体系之目录