2013-01-13 72 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