我目前正在尝试以块的方式读取二进制文件,我的解决方案如下:
first_portion = File.binread(replay_file, 20)
second_portion = File.binread(replay_file, 24, 20)
第一个数字表示要读取的字节数,第二个数字是偏移量。
我知道这样做不好,因为File.binread在返回后每次都会关闭文件。我应该如何打开文件一次,进行所需操作,完成后关闭它(但仍然使用binread)。
另外,还有一个小问题。我一直在看一些Python示例,并看到了这个:
UINT32 = 'uintle:32'
length = binary_file.read(UINT32)
content = binary_file.read(8 * length)
这到底是在做什么(它是如何工作的),这在Ruby中会是什么样子?
#unpack
总是返回一个数组,所以你需要获取数组的第一个
元素。 - Silver Phoenix.unpack(...).first
。 - Alex Gittemeier