java - 使用 DataOutputStream 写入偏移量

标签 java offset dataoutputstream

在我的项目中,我们正在使用 DataOutputStream 编写一个文件。我们正在编写不同的数据类型,如短、字节、整型和长整型,并且我们在 DataOutputStream 中使用各自的方法。喜欢 writeShort() , writeByte()等等

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

我想编写整个记录,它是如上所述的不同数据类型的组合。

有人可以告诉我正确的方法是什么吗?

最佳答案

就您而言,您应该使用 RandomAccessFile为了通过其方法 seek(long pos) 在给定位置读取和/或写入文件中的某些内容.

例如:

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

注意:方法 writeShort()writeByte() 等及其读取对应项可直接从类 中获取RandomAccessFile 因此单独使用它就足够了。

关于java - 使用 DataOutputStream 写入偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40583978/

相关文章:

java - 使用 DataOutputStream 发送 0 字节?

java - Android:通过 TCP 套接字流式传输音频

java - Spring OAuth2 java.util.LinkedHashMap 无法转换为 org.springframework.security.web.authentication.WebAuthenticationDetails

html - Bootstrap 4 偏移类有问题

javascript - jQuery goToByScroll 偏移量

python - 用 Python 计算六角形棋子的有效走法

java - 在java中发送一个int。有时会引发异常?

java - Xstream:如何使用数组反序列化 Xml

java - Play框架2.0尝试级联删除时出错 "Parameter "#1"is not set; SQL statement: delete "

java - Signapk.jar 给出错误 java.lang.ClassNotFoundException : sun. misc.BASE64Encoder