您的位置:首页 > 其它

使用对象流实现序列化

2015-03-16 22:22 204 查看
(一)bjectOutputStream对象输出流,将对象保存到磁盘或者通过网络传输对象字节输出流、将一个序列化的对象写入到构造ObjectOutputStream时传入的底层字节输出流中、通过源码可以看出、他虽然不是实现了FilterOutputStream装饰类、同时实现了ObjectOut、而此接口实现了DataOut接口、并且对这个接口进行了扩展、使得ObjectOut在具有DataOut中定义的各种方法同时、也具有将对象、数组、字符串写入到底层字节流中的功能、这样也就意味着ObjectOutputStream同样具有DataOutputStream功能的同时也具有将对象、数组字符串写入到底层字节输出流中的功能、当然ObjectOuputStream同样还实现了别的接口、因为他写入一个对象的时候、不仅仅写入的是标示这个Object的所有属性、同时还有额外的一些信息、比如版本号、作者等、但是这些对我们是透明的、具体的写入方法由JDK说了算、从这里也可以看出ObjectOutputStream与DataOutputStream之间的差异、1、ObjectOutputStream是将一个对象的所有相关属性、信息(不包括方法)写入到底层流中、而DataOutputStream一次写入的只是一个java基础类型的数据、2、读取的时候ObjectOutputStream一次读取一个对象、不必关心对象每个属性的写入顺序、而DataOutputStream读取时要严格按照写入时的顺序读取(当然、在使用skip方法时还要考虑字节数)、有关序列化的有另一篇文章说明、总结时候也会给出一点有关序列化的认识。常用方法:1/***Flushesthestream.Thiswillwriteanybufferedoutputbytesandflush*throughtotheunderlyingstream.**@throwsIOExceptionIfanI/Oerrorhasoccurred.*///刷新该流的缓冲、这里也会将底层流中的数据flush到底层流指定的目的地中。publicvoidflush()throwsIOException{bout.flush();}
void
write(
byte
[]buf);写入一个

byte
数组。
void
write(
byte
[]buf,
int
off,
int
len);写入字节的子数组。
void
write(
int
val);写入一个字节。
void
writeBoolean(
boolean
val);写入一个

boolean
值。
void
writeByte(
int
val);写入一个

8
位字节。
void
writeBytes(Stringstr);以字节序列形式写入一个String。
void
writeChar(
int
val);写入一个

16
位的
char
值。
void
writeChars(Stringstr);以
char

序列形式写入一个String。

void
writeDouble(
double
val);写入一个

64
位的
double
值。
void
writeFields();将已缓冲的字段写入流中。
void
writeFloat(
float
val);写入一个

32
位的
float
值。
void
writeInt(
int
val);写入一个

32
位的
int
值。
void
writeLong(
long
val);写入一个

64
位的
long
值。
void
writeObject(Objectobj);将指定的对象写入ObjectOutputStream。
void
writeShort(
int
val);写入一个

16
位的
short
值。
void
writeUTF(Stringstr);以UTF-
8

修改版格式写入此String的基本数据。



ObjectOutputStream、ObjectInputStream这对流本质上就是操作序列化对象、用于在介质间进行传递序列化对象的属性、当然、当我们想要保存对象的某个属性的时候可以使用DataOutputStream、DataInputStream这对流、但是当我们要保存的属性恰好组成了一个对象、并且这个对象还有版本、作者等信息时、DataOutputStream这对流就不能满足我们了、其实如上面所说、ObjectInputStream这对流也是间接实现了DataOutputStream这对流的接口、并且中间穿插了一个ObjectOut这对接口、这对接口对DataOut这对进行了扩展、满足传输对象、数组、字符串。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐