使用Lua读取/写入属性文件

在Java中,我习惯于使用内置的类来读取和写入属性文件,但是Lua中并不存在类似的东西。

最简单的方法是将名称和值保存到文件中,然后使用名称获取该值。

点赞
用户1516484
用户1516484

最简单的方法可能是这样的:

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 的许多序列化库之一,其中一些可在 此处 找到。

2013-01-13 18:39:05
用户3783950
用户3783950

请参考这个例子:

https://flicsdb.com/read-properties-file-in-lua/

它解释了如何读取属性文件,并且忽略空格或注释符号"#".

2019-03-05 07:46:59