lua 数据以table表的形式存储
出处:http://blog.sina.com.cn/s/blog_991afe570101rkfh.html
感谢,原文作者的无私奉献!
实现思路:
table表 ------> 转为字符串(这里利用json库)------->存储--------->读取
达成目的:
解决字符串拼接问题
用最简单办法将table表存入文件,方便游戏存档、游戏关卡等等
第一步:将table表转为json格式的字符串
导入头文件
--2.2.5的quick版本已经在框架载入时完成了json模块的初始化,所以这里就不需要做导入头文件的操作 --local json = require("framework.shared.json")
创建一个表格
local t = {} t.test = "OKOK" t.net = "okok" t.inner = {} t.inner.test = "OKOK8888" --主要使用以下两个方法进行实现 local wirtjson =json.encode(t)--转换成json格式 local readjson =json.decode(wirtjson)--转成原来存储前的格式
注意:以下这两个方法都可以获取到当前电脑上工程的根目录
1,device.writablePath
2,device.cachePath
第二步:写入文件,进行存储并读取
第一种方法:lua io 库
把文件保存到当前工程根目录下:
local test = assert(io.open(device.writablePath .. "/formation.lua", "w")) test:write(wirtjson) test:close()
读取整个文件:
local test = io.open(device.writablePath .. "/formation.lua", "r") local readjson= test:read("*a") local table =json.decode(readjson) test:close()
第二种方法:CCUserDefault
把文件保存到当前工程根目录下:
CCUserDefault:sharedUserDefault():setStringForKey("SaveFightArray1", wirtjson) CCUserDefault:sharedUserDefault():flush()
读取整个文件:
local ecord1 = CCUserDefault:sharedUserDefault():getStringForKey("SaveFightArray1") local table =json.decode(record1)
文章来自:http://my.oschina.net/u/223340/blog/382895