1

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

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

4

2 回答 2

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()明智地使用and可以使其更加健壮debug.sethook(),但是如果您想正确地做到这一点,您应该使用 Lua 的众多序列化库之一,可以在此处找到其中的一部分。

于 2013-01-13T18:39:05.587 回答
0

参考这个例子, https://flicsdb.com/read-properties-file-in-lua/ 它解释了如何读取属性文件并忽略空格或#

于 2019-03-05T07:46:59.230 回答