JAVA中对象的序列化
发布网友
发布时间:2022-04-25 07:58
我来回答
共5个回答
热心网友
时间:2023-05-10 13:25
好像没有什么关系把,某个对象需要序列化,这个对象的类实现java.io.Serializable即可,此接口中没有任何需要覆盖的方法。如果硬说跟哪个流有关系,应该是这两个吧java.io.ObjectOutputStream,java.io.ObjectInputStream,这两个流可以直接操作对象(比如Person对象),像你上面说的流只能操作数据,而不能是对象的,这两个对象是对应的,一个是写对象,一个是读对象。
什么时候用序列化?
一般我们的对象是在堆内存中的,不是持久化存储,而你需要持久化存储(即存到硬盘上),等待下次继续来读取这个对象来操作,这时候就需要把这个Person类实现序列化接口java.io.Serializable,java.io.ObjectOutputStream,java.io.ObjectInputStream来读写,用你用你说的那些流是无法做到的。另外,如果你的对象需要在网络上传来传去的,也需要序列化。
纯手工打,本人也是初学,解释的不好还请见谅!
热心网友
时间:2023-05-10 13:25
序列化是指把数据从能结构操作拆成顺序的,用于输入输出。
Reader 和Writer的子类都是用于字符char类型以及字符串String类型的读写。
就是说你用Reader 和Writer可以把对象用字符的形式序列化。
你可以用自创的格式比如 “ 对象1 ,方法1 数据1”临时拼一个
也可以用比较成熟的惯例,比如XML、JSON、YAML都属于这种以“字符形式序列化对象数据”。
BufferedReader和BufferedWriter为 FileReader和FileWriter加上内存缓存,让读写速度增加。
不要速度时可直接用FileReader和FileWriter。
热心网友
时间:2023-05-10 13:26
你列举的流 都属于 字符流,只能处理文本!
而一个对象除了String 类 其他都不能用这些来处理, 只能用FileInputStream BufferedInputStream FileOutputStream BufferedOutputStream PrintStream等字节流来处理!
热心网友
时间:2023-05-10 13:26
一起用?是把对象序列化后用流输入输出?那可以用最外层套一个Object输入输出流就可以了。
热心网友
时间:2023-05-10 13:27
不要觉得问的简单或者问太多了就不好意思问老师。既然有老师就问老师,当面教肯定比网上要好,不然要老师做什么?等你工作了你就知道没有问的人有多蛋疼