首页 新闻 会员 周边

Java:序列化其实就是把对象写入文本文件吗?不是都可以使用FileInputStream和FileOutputStream代替它吗

0
[已解决问题] 解决于 2018-06-10 22:02

Java:序列化其实就是把对象写入文本文件吗?使用FileInputStream和FileOutputStream也可以复制文件啊,那序列化与序列化有什么独特的意义?

秋风秋雨123的主页 秋风秋雨123 | 初学一级 | 园豆:51
提问于:2017-04-27 16:54
< >
分享
最佳答案
3

序列化的意思是:将一个对象转换为可传输的数据.

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2017-04-27 18:17

所以根据传输时使用的协议的不同,会选择将对象序列化为 xml,json,binary 等。

行乎当行 | 园豆:347 (菜鸟二级) | 2017-04-28 16:17
其他回答(3)
0

序列化和反序列的话就是使用一种大家都明白的方式表达对象信息,写到文件只是序列化后如何存储及反序列化前的如何读取。

所以序列化和反序列化用不用你说的这些对象完全是两码事。

而且更多时候序列化反序列化时用于跨进程的接口调用

Daniel Cai | 园豆:10424 (专家六级) | 2017-04-27 16:59
0

举个栗子,我有个橙子,你喝橙汁,我就得把橙子序列化为橙汁,这样你才接受

姚刘乐 | 园豆:70 (初学一级) | 2017-04-27 17:02
3

跟文件无关,序列化是因为语言之间的基本类型有所不同,比如你java的某个基本数据类型我python没有,但是你要传给我,直接传,我肯定解析不了,这时候就需要有一个通用的传输格式,序列化就是把转换成这个通用的传输格式,如果你的对象就不会传输给其他语言,那不需要去序列化

北方姆Q | 园豆:1118 (小虾三级) | 2017-04-27 17:30

正解,补个楼:
①网络通信时,序列化信息(比如报文Id+报文Data)为字节流后传输,接收方收到后将其反序列化获得信息;
②本地进程通信时,若通过文件,将信息按(如上面说的xml、json、binary)格式化为文件流后写入文件,然后由本程序或另外的程序,在合适的时间读取文件,并将文件流反序列化并获得信息。
③本地进程通信当然也可以在本地环回中实现类似网络通信。

支持(0) 反对(0) no_complain | 园豆:200 (初学一级) | 2022-02-23 14:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册