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

问题描述 投票:1回答:2

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

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

io lua
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()debug.sethook()可以使这更加强大,但是如果你想要正确地使用它,你应该使用Lua的许多序列化库中的一个,其中一个可以找到here


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.