Java:序列化其实就是把对象写入文本文件吗?使用FileInputStream和FileOutputStream也可以复制文件啊,那序列化与序列化有什么独特的意义?
序列化的意思是:将一个对象转换为可传输的数据.
所以根据传输时使用的协议的不同,会选择将对象序列化为 xml,json,binary 等。
序列化和反序列的话就是使用一种大家都明白的方式表达对象信息,写到文件只是序列化后如何存储及反序列化前的如何读取。
所以序列化和反序列化用不用你说的这些对象完全是两码事。
而且更多时候序列化反序列化时用于跨进程的接口调用
举个栗子,我有个橙子,你喝橙汁,我就得把橙子序列化为橙汁,这样你才接受
跟文件无关,序列化是因为语言之间的基本类型有所不同,比如你java的某个基本数据类型我python没有,但是你要传给我,直接传,我肯定解析不了,这时候就需要有一个通用的传输格式,序列化就是把转换成这个通用的传输格式,如果你的对象就不会传输给其他语言,那不需要去序列化
正解,补个楼:
①网络通信时,序列化信息(比如报文Id+报文Data)为字节流后传输,接收方收到后将其反序列化获得信息;
②本地进程通信时,若通过文件,将信息按(如上面说的xml、json、binary)格式化为文件流后写入文件,然后由本程序或另外的程序,在合适的时间读取文件,并将文件流反序列化并获得信息。
③本地进程通信当然也可以在本地环回中实现类似网络通信。