使用 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
所以单独使用就够了
在我的项目中,我们正在使用 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
所以单独使用就够了