Cocos Creator如何读写本地文件

admin 2025-07-04 101人围观 ,发现11个评论
前言一、使用localStorage存储和读取本地文件1.常用API

存储:(key,value);两个参数,用来索引的字符串键值key,和要保存的字符串数据value。

读取:(key);一个参数,只需要根据key来读取相应的值。

删除:(key);移除一个存储的值后,无法再读取。

这种处理方式,类似Java中的Map。

2.简单案例

(key,value)上面的方法需要两个参数,用来索引的字符串键值key,和要保存的字符串数据value。

假如我们要保存玩家持有的金钱数,假设键值为gold:

('gold',100);

对于复杂的对象数据,我们可以通过将对象序列化为JSON后保存:

userData={name:'Tracer',level:1,gold:100};

('userData',(userData));和setItem相对应,getItem方法只要一个键值参数就可以取出我们之前保存的值了。对于上文中储存的用户数据:

varuserData=(('userData'));
3.数据加密

对于单机游戏来说,对玩家存档进行加密可以延缓游戏被破解的时间。要加密存储数据,只要在将数据通过转化为字符串后调用你选中的加密算法进行处理,再将加密结果传入setItem接口即可。您可以搜索并选择一个适用的加密算法和第三方库,比如encryptjs,将下载好的库文件放入你的项目,存储时:

varencrypt=require('encryptjs');varsecretkey='open_sesame';//加密密钥vardataString=(userData);varencrypted=(dataString,secretkey,256);('userData',encrypted);

读取时:

varcipherText=('userData');varuserData=((cipherText,secretkey,256));

注意数据加密不能保证对用户档案的完全掌控,如果您需要确保游戏存档不被破解,请使用服务器进行数据存取。

二、使用1.常用API

jsb是javascriptbind的代表,整个C/C++导出的绑定都在这个jsb里面,jsb支持native,不支持h5(浏览器上无法运行jsbisnotdefined)。而且fileUtils是本地文件读写的一个工具类,全局只有一个实例。

2.简单案例
({exts:,onLoad(){//获取全局的工具类的实例,;//如果是在电脑的模拟器上,就会是安装路径下模拟器的位置;//如果是手机上,那么就是手机OS为这个APP分配的可以读写的路径;//jsb--javascriptbinding--jsb是不支持h5的varwriteable_path=();(writeable_path);//要在可写的路径先创建一个文件夹varnew_dir=writeable_path+"new_dir";//路径也可以是外部存储的路径,只要你有可写外部存储的权限;//getWritablePath这个路径下,会随着我们的程序卸载而删除,外部存储除非你自己删除,否者的话,卸载APP数据还在;if(!(new_dir)){(new_dir);}else{("dirisexist!!!");}//读写文件我们分两种,文本文件,二进制文件;//(1)文本文件的读,返回的是一个string对象varstr_data=(new_dir+"/test_str_");(str_data);str_data="hellotest_write!!!!!"(str_data,new_dir+"/test_str_");//(2)二进制文件的读写,Uint8Array--js对象varbin_array=(new_dir+"/test_bin_");(bin_array[0],bin_array[1]);//使用这个就能访问二进制的每一个字节数据;(bin_array,new_dir+"/test_bin_");////删除文件和文件夹//(new_dir+"/test_bin_");//(new_dir);},});
三、浏览器环境下写文件

由于CocosCreator官方文档中没有提供跨平台的通用写文件接口。如果运行环境是浏览器,有一个替代方案可以实现把内容保存到文件,效果相当于下载了一个文件到本地。代码如下:

//保存字符串内容到文件。//效果相当于从浏览器下载了一个文件到本地。//textToWrite-要保存的文件内容//fileNameToSaveAs-要保存的文件名saveForBrowser(textToWrite,fileNameToSaveAs){if(){("浏览器");lettextFileAsBlob=newBlob([textToWrite],{type:'application/json'});letdownloadLink=("a");=fileNameToSaveAs;="DownloadFile";if(!=null){//Chromeallowsthelinktobeclicked//=(textFileAsBlob);}else{//FirefoxrequiresthelinktobeaddedtotheDOM//=(textFileAsBlob);=destroyClickedElement;="none";(downloadLink);}();}}
四、CocosCreator读写本地的json文件

关于CocosCreator读写本地json文件,我们单独给大家写一篇文章专门做介绍!

猜你喜欢
    不容错过