出处: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)