lua数据存储与文件解析
来源:互联网 发布:cf领活动枪软件 编辑:程序博客网 时间:2024/06/05 04:23
1、简单介绍:
cocos2dx-lua中对文件的操作都用cc.FileUtils这个类进行操作,它是单一实例。
访问res目录:(fullPathForFilename(arg))
local fullPathForFilename =cc.FileUtils:getInstance():fullPathForFilename(“text.txt”)。如果该文件存放在该目录的其他文件夹下,也要相应的加上搜索目录。
判断文件是否存在:(isFileExist(arg))
local isExist =cc.FileUtils:getInstance():isFileExist(“text.txt”)
可写入目录:(getWritablePath())
local writablePath =cc.FileUtils:getInstance():getWritablePath()
2、实际操作:
--测试资源目录信息
local sharedFileUtils = cc.FileUtils:getInstance()
local function onClickMenu1(pSender)
localfullPathForFilename = sharedFileUtils:fullPathForFilename(“text.txt”)
print(fullPathForFilename) --如果res目录下,没有text.txt文件,那么输出为空
localisExist = sharedFileUtils:isFileExist(“text.txt”)
ifisExist == true then
print(“text.txtexists”)
else
print(“text.txtdoesn’t exists”)
end
end
--读文件
local fullPathForFilename =sharedFileUtils:fullPathForFilename(“test.txt”)
local content =sharedFileUtils:getStringFromFile(fullPathForFilename)
print(content)
--路径搜索
getSearchPaths() --获得所有搜索路径集合
setSearchPaths(searchPaths) --设置搜索路径集合
addSearchPath(path) --追加搜索路径
例如在新建的工程中,在main.lua中最开始的位置:
cc.FileUtils:getInstance():addSearchPath("src/")
cc.FileUtils:getInstance():addSearchPath("res/")
sharedFileUtils:purgeCachedEntries() --清理搜索文件缓存,一般是更新资源后进行搜索前调用。
local searchPaths = sharedFileUtils:getSearchPaths() --获得搜索路径的容器,返回值是一个table。
local writablePath = sharedFileUtils:getWritablePath() --获得可写目录
local resPrefix = “res/”
table.insert(searchPaths, 1, resPrefix..”dir2”)
table.insert(searchPaths, 1, resPrefix..”dir1”)
table.insert(searchPaths, 1, writablePath)
sharedFileUtils:setSearchPaths(searchPaths) --设置搜索目录
3、UserDefault用法
获取单一实例: localuserDefault = cc.UserDefault:getInstance()
常用方法:
local ret = userDefault:getStringForKey(“string”,“defaultString”)
userDefault:setStringForKey(“string”, “realString”)
getDoubleForKey、setDoubleForKey
getFloatForKey、setFloatForKey
getIntegerForKey、setIntegetForKey
getBoolForKey、setBoolForKey
4、字典列表结构的属性列表文件:
比如:
<plist version=”1.0”>
<dict>
<key>root</key>
<array>
<dict>
<key>date</key>
<string>2008-08-16</string>
<key>content</key>
<string>初始化</string>
</dict>
<dict>
<key>date</key>
<string>2016-08-16</string>
<key>content</key>
<string>欢迎使用</string>
</dict>
</array>
</dict>
</plist>
那么读取上面数据:
local fileUtils = cc.FileUtils:getInstance()
local fullPathForFileName =fileUtils:fullPathForFilename(“notice.plist”)
local dict = fileUtils:getValueMapFromFile(fullPathForFileName)
for key, value in pairs(dict) do
for i =1, table.getn(value) do
localrow = value[i]
localdate = row[“date”]
localcontent = row[“content”]
end
end
5、访问根为列表结构的属性列表文件
<plist version = “1.0”>
<array>
<dict>
<key>date</key>
<string>2010-08-04</string>
<key>content</key>
<string>初始化</string>
</dict>
<dict>
<key>date</key>
<string>2016-8-16</string>
<key>content</key>
<string>欢迎使用</string>
</dict>
</array>
</plist>
读取上面数据
local fileUtils = cc.FileUtils:getInstance()
local fullPathForFileName =fileUtils:fullPathForFilename(“notice.plist”)
local vector = fileUtils:getValueVectorFromFile(fullPathForFileName)
for i = 1, table.getn(vector) do
local row= vector[i]
localdate = row[“date”]
localcontent = row[“content”]
end
6、json解析
json.decode(jsonStr)
json解码主要通过decode函数实现,将字符串转为json对象或json数组
local jsonStr = ‘[{“ID”:”1”, “CDate”:”19920715”, “Content”:”发布iOSBook0“},
{“ID”:”2”, “CData”:”19920912”,“Content”:”发布iOSBook1”}]’
local jsonArray = json.decode(jsonStr)
for i = 1, table.getn(jsonArray) do
localjsonObj = jsonArray[i]
local ID= jsonObj[“ID”]
localCDate = jsonObj[“CDate”]
localContent = jsonObj[“Content”]
end
json.encode(jsonArray)
json编码主要通过encode函数实现,将json数组或对象转为字符串
local jsonObj = {ID=”1”, CDate=”19920715”, Content = “发布iOSBook0”}
local jsonStr = json.encode(jsonObj)
- lua数据存储与文件解析
- cocos2dx lua 数据存储
- XML文件与数据存储
- android数据存储与访问---文件存储
- Android数据存储---Pull解析Xml文件
- json存储数据与解析方式
- Android中Xml数据存储与解析
- Lua解析文件MD5
- Android数据存储与访问之文件数据存储
- lua中table存储数据
- quick lua 数据存储 GameState
- Android 数据存储与读取:文件
- 数据存储与访问(1)-------------文件
- 数据存储与访问一之文件
- 读书笔记--Android数据存储与文件IO
- 数据加载,存储与文件格式化
- 文件存储与数据返回错误总结
- python3数据加载,存储与文件1
- MAC下安装多版本JDK和切换几种方式
- Android eclipse unable to launch:The selection can not be launched,and there are no recent launches
- eclipse如何打开一个存在的工程。我的工程已经eclipse的workspace下
- 数据绑定框架DataBinding--入门篇
- java Comparable 接口
- lua数据存储与文件解析
- ios developer tiny share-20160816
- public、private、protected、Friendly的区别与作用域,以及不写时的区别?
- 关于NSMutableArray的初始化创建
- 在MFC中使EditBox处于只读模式,无法被编辑
- java集合
- 归并排序
- AndroidASD完全解析04之Snackbar
- μC/OS-Ⅲ系统的资源管理-临界区共享