使用 DataOutputStream 写入偏移量

Write to an offset using DataOutputStream

在我的项目中,我们正在使用 DataOutputStream 编写文件。我们正在编写不同的数据类型,如 short、byte、int 和 long,我们在 DataOutputStream 中使用各自的方法,如 writeShort()writeByte()

现在,我想编辑此文件中特定偏移量处的一条记录。我知道该记录开始的偏移量,但我不确定写入文件的正确方法是什么,因为 DataOutputStream 中唯一支持偏移量的方法是采用 byte[].[=16= 的方法]

我想写整个记录,它是上面提到的不同数据类型的组合。

谁能告诉我正确的方法是什么?

在你的情况下,你应该使用 RandomAccessFile in order to read and/or write some content in a file at a given location thanks to its method seek(long pos)

例如:

try (RandomAccessFile raf = new RandomAccessFile(filePath, "rw")) {
    raf.seek(offset);
    // do something here
}

注意: writeShort()writeByte() 等方法及其读取对应物可直接从 class RandomAccessFile 所以单独使用就够了