1

我正在查看FileOutputStreamObjectOutputStream的文档,但我还没有看到任何将“写指针”移动到指定位置的方法(尽管我已经看到了一个用于完全重写文件中所有数据的构造函数,并且我已经看到一个构造函数,用于简单地将writtenData附加到文件的末尾。是否有任何我可以使用的OutputStreams允许我在任何地方写入?

另外,我在使用 ObjectInputStream 时遇到了问题。我编写了一些测试代码来测试对象更新(我真正计划做的是将 2 的数组写入JTable文件,并在我JTable从客户端收到 2 时更新该数组)。我尝试将 a 写入String文本文件(我不认为文件扩展名对 Java 很重要,但我可能是错的),并且由于某种原因,ObjectInputStream我使用的似乎正在擦除文件的所有内容!有谁知道可能导致这种情况发生的原因?(即使我的程序唯一做的事情是通过 ObjectInputStream 读取字符串,它似乎也会发生。)

4

2 回答 2

4

我正在查看 FileOutputStream 和 ObjectOutputStream 的文档,但没有看到任何将“写指针”移动到指定位置的方法

看看RandomAccessFile

我真正打算做的是将两个 JTable 的数组写入文件

JTable有一些声明为 的字段transient,其中transient对象无法序列化(它们的引用将null在反序列化之后)。

于 2013-08-07T04:19:30.430 回答
0

这个上面的答案回答了我的第一个问题,但至于文件本身的重置,那是因为我尝试在构造函数中初始化所有内容(包括OutputStreams)。初始化FileOutputStream导致文件中的任何数据都被擦除。

于 2013-08-07T22:39:43.317 回答