在java中,我习惯使用内置类来读取和编写属性文件,但是lua不存在类似的东西。
最简单的方法是将名称和值保存到文件中,然后使用名称返回值?
答案 0 :(得分:3)
最简单的方式是这样的:
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的众多序列化库中的一个,其中一个选择可以找到here。
答案 1 :(得分:0)
请参考此示例, https://flicsdb.com/read-properties-file-in-lua/ 它说明了如何读取属性文件以及如何忽略空格或#