您可以使用f:read(size)
逐字节逐个读取二进制文件,其中大小代表字节数但我如何逐位读取? (如果你想要的话,字节或八位字节的1/8)
大部分数据都可以使用Int8(1),Uint16(2),Uint32(4),Int *(4) 但对于BOOL(0.125?)。
感谢您的帮助!
编辑:我的问题显然不是逐位读取文件,而是设法提取所有数据,包括一些布尔值(不创建1位的“移位”)。< / p>
答案 0 :(得分:1)
你做不到。字节是可以从文件中读取的最小单位。您可以编写包装逐字节访问的代码,使其看起来像位。
从文件中读取布尔值的适当方法取决于它的编写方式。除非你一点一点地写出布尔值,否则你就不需要那样读它了。
Lua文件API仅处理数字和字符串。要编写布尔值,您需要将其转换为其中一种类型。要阅读它,您将阅读其中一种类型,并执行您用于编写的转换的反转。例如,您可以将true
转换为1
,将false
转换为0
,然后编写和读取数字。或者您可以尝试将多个布尔值打包到一个数字中。在任何情况下,您都不需要逐位读取或写入文件来读取和写入布尔数据。