在我的项目中,我们使用DataOutputStream
编写文件。我们正在编写不同的数据类型,如short,byte,int和long,我们在DataOutputStream
中使用相应的方法,如writeShort()
,writeByte()
等。
现在,我想在特定偏移处编辑此文件中的一条记录。我知道该记录开始的偏移但我不确定写入文件的正确方法是什么,因为只有DataOutputStream
支持偏移的方法才是byte[]
。
我想写整个记录,它是上面提到的不同数据类型的组合。
有人可以告诉我这是什么方法吗?
答案 0 :(得分:2)
在您的情况下,由于其方法,您应该使用RandomAccessFile
来读取和/或写某个位置的文件中的某些内容seek(long pos)
例如:
try (RandomAccessFile raf = new RandomAccessFile(filePath, "rw")) {
raf.seek(offset);
// do something here
}
NB:方法writeShort()
,writeByte()
等及其读取的对应方可直接从班级RandomAccessFile
获取,因此单独使用它就足够了。< / p>