Io 使用lua读取/写入属性文件

Io 使用lua读取/写入属性文件,io,lua,Io,Lua,在java中,我习惯于使用内置类来读取和写入属性文件,但lua没有类似的功能 将名称和值保存到文件中,然后使用名称取回值的最简单方法是什么?最简单的方法如下: local name, value = "abc", 123 local f = io.open("outfile", "w") f:write("return {" .. name .. " = " .. value .. "}") f:close() --- local t = dofile("outfile") print( t

在java中,我习惯于使用内置类来读取和写入属性文件,但lua没有类似的功能

将名称和值保存到文件中,然后使用名称取回值的最简单方法是什么?

最简单的方法如下:

local name, value = "abc", 123
local f = io.open("outfile", "w")
f:write("return {" .. name .. " = " .. value .. "}")
f:close()

---

local t = dofile("outfile")
print( t[name] )
--> 123
这是可行的,但不是很安全,因为
dofile()
只执行它在文件中找到的任何Lua代码。如果文件返回一个充满保存值的表,就像这里一样,那么它工作得非常好,但是有人可以很容易地编辑此文件以包含
os.execute(“sudo rm-rf/”)
或其他类似的有趣内容

通过明智地使用
setfenv()
debug.sethook()
,可以使这一功能更加强大,但是如果您想正确地实现这一功能,您应该使用Lua的众多序列化库中的一个,可以找到其中的一个选择。

参考此示例,
它解释了如何读取属性文件,以及如何忽略空白或#

这取决于您真正想要什么。Lua以表格为中心。考虑阅读,看看你必须采取的设计决定。