每当创建一个对象时就将这个对象序列化存储在一个文件中,可是当反序列化读取这些对象时,只能读取一个。如何才能全部读取。请大神用java语言帮忙解决一下。
(自己网上查了一些说每次序列化进去对象的时候都会有Header,要重写ObjectOutputStream,但是重写之后还一直报异常java.io.StreamCorruptedException: invalid s)
你再写第二个时候是不是覆盖写了?
不是覆盖 我用的追加 可以把多个对象写进去
@六点丶: 一个对象写进去是“{a=1}”你再追加一个“{a=1}{a=1}”
但你想读成数组出来需要的是“[{a=1},{a=1}]”你看下写入到文件的数据是怎么用的吧
@吴瑞祥: 直接把对象写进去看是看不懂的一堆东西 但是确实是写进去了 就是读取的时候读到的只有一个对象
@六点丶: 你没看明白我的意思...
你按一个读当然只能读一个出来.要按数组读自然就能读数组出来.
写入的时候也是一个意思.
@吴瑞祥: 写入的时候是一个一个写入的,但是都存在文件里了,读取的时候不是应该把所有存在文件中的对象都读出来吗,我用一个集合接收读出来的还是只有一个,集合长度也一直是1.