gpt4 book ai didi

java - 如何将多个对象写入文件?

转载 作者:行者123 更新时间:2023-11-29 06:44:12 25 4
gpt4 key购买 nike

我想将多个对象写入一个文件,但问题是我没有同时写入所有对象。我必须写一个对象然后关闭文件,然后也许过了一段时间我想将另一个对象添加到同一个文件。

我目前正在这样做 FileOutputStream("文件名", true)这样它将把对象附加到文件的末尾而不是覆盖它。但是我得到这个错误:

java.io.StreamCorruptedException: invalid type code: AC

有什么办法可以解决这个问题吗?

谢谢,

最佳答案

一种选择是将文件分割成单独的消息。当您要写入消息时,首先将其序列化为 ByteArrayOutputStream。然后用DataOutputStream打开追加文件——用writeInt写入长度,然后写入数据。

当你从流中读取时,你会用 DataInputStream 打开它,然后重复调用 readInt 来找到下一条消息的长度,然后 readFully 阅读消息本身。将消息放入 ByteArrayInputStream,然后从中反序列化。

或者,使用比内置 Java 序列化更好的序列化格式 - 我是 Protocol Buffers 的粉丝但是有很多选择。内置序列化对我来说太脆弱了。

关于java - 如何将多个对象写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7831759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com