使用DataOutputStream写入偏移量

时间:2016-11-14 07:44:15

标签: java offset dataoutputstream

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

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

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

有人可以告诉我这是什么方法吗?

1 个答案:

答案 0 :(得分:2)

在您的情况下,由于其方法,您应该使用RandomAccessFile读取和/或某个位置的文件中的某些内容seek(long pos)

例如:

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

NB:方法writeShort()writeByte()等及其读取的对应方可直接从班级RandomAccessFile获取,因此单独使用它就足够了。< / p>