【发布时间】:2020-03-21 04:36:03
【问题描述】:
我需要做这个项目,我从中读取一个二进制文件,然后创建一个新的二进制文件,根据偏移量添加 00。因此,例如,如果二进制数位于偏移量 02,它将将该二进制数移动 2。因此该二进制数将位于 04. 与 00 之间。
我正在考虑使用随机访问文件来访问和编辑(只读)。但是我迷失了你要寻找多少字节。另外,如何编辑并将修改放入一个全新的文件中。
最诚挚的问候
【问题讨论】:
-
请更准确地描述您的描述:您是否尝试通过在特定字节偏移处添加 字节值 0x00 来转移内容?如果是这样,我不确定问题出在哪里。您读取二进制数据,然后如果您选择的数据结构允许插入元素,请执行此操作。否则,您可以通过创建一个新的值列表
list[:n] + (new value) + list[n+1:],在您需要的任何n“插入”一个元素 -
@Mike'Pomax'Kamermans 感谢您的回复。我在 java 中这样做,我刚刚创建了一个随机访问文件,但我不知道我应该使用 .seek(n) 方法查找它多少。我对此感到困惑。抱歉,我是这方面的初学者。
-
@Mike'Pomax'Kamermans 我不熟悉这些十六进制格式
-
@Mike'Pomax'Kamermans 您的列表示例在 Python 中,但标签是 java。
-
@KingA 要做你想做的事,你需要在一个文件中读取并在你写到另一个文件时修改它。根据您的描述,如果您有 10 个字节要插入某处,您将读取插入点并写出这些值。然后写出这 10 个字节并继续以相同的方式进行读取和写入。
标签: java binaryfiles