lua能够用来写二进制数据吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua能够用来写二进制数据吗?相关的知识,希望对你有一定的参考价值。

如题,似乎io.write只能用来写字符串和数字,那么如何写入二进制数据呢?
比如我要将00到FF,256个字节写入一个文件.

参考技术A 1、假设有一个很多行文本的文件,想从中读取一行,并打印到屏幕上。可以使用 io.open() 命令打开文件并读取。
命令的语法是 io.open(filename, mode)。此处将使用 r 作为 mode 的值,意指读取(read)模式。作为参考,下面是所有可用模式的列表:
引用:
r - 读取模式w - 写入模式(覆盖现有内容)
a - 附加模式(附加在现有内容之后)
b - 二进制模式
r+ - 读取更新模式(现有数据保留)
w+ - 写入更新模式(现有数据擦除)
a+ - 附加更新模式(现有数据保留,只在文件末尾附加)
第一件要做的事情就是打开文件并存为一个变量。看下面。
代码:
file = io.open("testRead.txt", "r")
*n - 读取一个数字并返回它。例:file.read("*n")
*a - 从当前位置读取整个文件。例:file.read("*a")
*l - (默认) - 读取下一行,在文件尾 (EOF) 处返回 nil。例:file.read("*l")
number - 返回一个指定字符个数的字符串,或在 EOF 时返回 nil。
2、例程:
out=io.open("text.dat","wb")
for i=0,255 do
local x=string.char(i)
out:write(x)
end
out:close()
参考技术B 给你一个例子:
out=io.open("text.dat","wb")
for i=0,255 do
local x=string.char(i)
out:write(x)
end
out:close()

你可以查找lua的手册

参考资料:http://book.luaer.cn/_121.htm

本回答被提问者采纳

lua可以对单个字符和数字之间进行转换吗

参考技术A ua中的类型转换:
1)lua
当中也有隐士转换(自动)和显示转换(强制),转换的规则如下:
a)隐式转换:如果对”数字“字符串做算数算数运算,lua会自动将数字字符串转换成整数,然后再进行运算。但是如果该字符串包括了其他非数字字符(两边的空白除外),则会转换错误,lua不会自动将char转换成其ascii值的。你遇到就是这个问题。
如果数值进行字符串操作,比如连接,也同样会自动将数字转换成字符串的。
b)显式转换:通过内置函数tostring,tonumber
,分别进行数字和字符串之间的转换。同样,如果字符串里有非数值字符,tonumber
会转换报错的。

以上是关于lua能够用来写二进制数据吗?的主要内容,如果未能解决你的问题,请参考以下文章

新手求问lua能将十进制和十六进制数互相转化吗

新手求问lua能将十进制和十六进制数互相转化吗

使用FFI将二进制数据读取为Lua号

lua可以对单个字符和数字之间进行转换吗

lua语言 如何将字符串整体转换为一个十进制数据 而不按照每个字符转为若干个十进制数

Lua写入输出奇怪的字节到文件[重复]