2013-01-13 84 views
1

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

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

+0

这一切都取决于你真正想要的。 Lua是以表格为中心的。考虑阅读http://lua-users.org/wiki/TableSerialization以查看您必须采取的设计决策。 –

回答

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