我在理解如何读取并返回文件中某个偏移位置的值方面遇到了一些困难。
例如,我知道从我的十六进制编辑器中偏移量为D768,值为32位。那么如何读取此值并显示在标签中呢?
非常感谢您提供任何帮助。
例如,我知道从我的十六进制编辑器中偏移量为D768,值为32位。那么如何读取此值并显示在标签中呢?
非常感谢您提供任何帮助。
RandomAccessFile raf = new RandomAccessFile("foo.bin", "r");
raf.seek(0xd768);
int value = raf.read();
skipBytes
跳转到给定位置。如果要读取32位数字且值为大端序,可以使用DataInputStream
。如果是小端序,则需要手动将四个字节转换为int
:int value = (int)bytes[0]
| ((int)bytes[1] << 8)
| ((int)bytes[2] << 16)
| ((int)bytes[3] << 24);
skipBytes(offset)
定位,然后调用readInt()
。这将给你一个32位的起始偏移量。请注意,这假设整数在文件中以最高有效字节优先的方式表示。skipBytes
仅在文件上“无法工作”。 - Stephen C