【发布时间】:2016-11-14 07:44:15
【问题描述】:
在我的项目中,我们正在使用DataOutputStream 编写一个文件。我们正在编写不同的数据类型,如 short、byte、int 和 long,我们在 DataOutputStream 中使用各自的方法,如 writeShort()、writeByte() 等。
现在,我想编辑该文件中特定偏移量的一条记录。我知道该记录开始的偏移量,但我不确定写入文件的正确方法是什么,因为DataOutputStream 中支持偏移量的唯一方法是采用byte[] 的方法。
我想写整条记录,它是上面提到的不同数据类型的组合。
谁能告诉我正确的方法是什么?
【问题讨论】:
-
记录的大小是固定的吗?
-
不,记录有不同的大小。
-
"DataoutputStream 中唯一支持偏移量的方法是采用 byte[] 的方法" => 方法
DataOutputStream#write(byte[], int, int)中的偏移量表示您正在写入的 data 中的偏移量,不是 stream 中的某个位置。 -
另外:流的本质是不通过使用偏移或类似的方式提供随机访问。请参阅 Nicolas 的答案以获取替代方案。
标签: java offset dataoutputstream