Cocos Creator如何读写本地文件
一、使用localStorage存储和读取本地文件
1. 常用API
存储:cc.sys.localStorage.setItem(key, value);
两个参数,用来索引的字符串键值 key,和要保存的字符串数据 value。
读取:cc.sys.localStorage.getItem(key);
一个参数,只需要根据key来读取相应的值。
删除:cc.sys.localStorage.removeItem(key);
移除一个存储的值后,无法再读取。
这种处理方式,类似Java中的Map。
2. 简单案例
cc.sys.localStorage.setItem(key, value)
上面的方法需要两个参数,用来索引的字符串键值 key,和要保存的字符串数据 value。
假如我们要保存玩家持有的金钱数,假设键值为 gold:
cc.sys.localStorage.setItem('gold', 100);
对于复杂的对象数据,我们可以通过将对象序列化为 JSON 后保存:
userData = {
name: 'Tracer',
level: 1,
gold: 100
};
cc.sys.localStorage.setItem('userData', JSON.stringify(userData));
和 setItem 相对应,getItem 方法只要一个键值参数就可以取出我们之前保存的值了。对于上文中储存的用户数据:
var userData = JSON.parse(cc.sys.localStorage.getItem('userData'));
3.数据加密
对于单机游戏来说,对玩家存档进行加密可以延缓游戏被破解的时间。要加密存储数据,只要在将数据通过JSON.stringify 转化为字符串后调用你选中的加密算法进行处理,再将加密结果传入 setItem 接口即可。
您可以搜索并选择一个适用的加密算法和第三方库,比如 encryptjs, 将下载好的库文件放入你的项目,存储时:
读取时:
var cipherText = cc.sys.localStorage.getItem('userData');
var userData=JSON.parse(encrypt.decrypt(cipherText,secretkey,256));
注意 数据加密不能保证对用户档案的完全掌控,如果您需要确保游戏存档不被破解,请使用服务器进行数据存取。
二、使用jsb.fileUtils
1.常用API
jsb是javascript bind的代表,整个C/C++ 导出的绑定都在这个jsb里面,jsb 支持native,不支持h5(浏览器上无法运行jsb is not defined )。而且fileUtils是本地文件读写的一个工具类,全局只有一个实例。

2.简单案例
三、浏览器环境下写文件
由于CocosCreator官方文档中没有提供跨平台的通用写文件接口。如果运行环境是浏览器,有一个替代方案可以实现把内容保存到文件,效果相当于下载了一个文件到本地。代码如下:
四、Cocos Creator 读写本地的json文件
关于Cocos Creator读写本地json文件,我们单独给大家写一篇文章专门做介绍!
更多教学视频及素材源码:
https://www.bycwedu.com/promotion_channels/829468798