加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos2d-x从入门到精通第四课《Cocos2d-x中的FileUtils》

发布时间:2020-12-14 16:29:30 所属栏目:百科 来源:网络整理
导读:FileUtils的作用 课程视频教程地址:http://edu.csdn.net/course/detail/1342/20982?auto_start=1 FileUtils是Cocos2d-x里面的文件管理类。它对我们游戏中的资源文件起到管理的作用,可以说是游戏资源管理的大管家。FileUtils可以进行读写文件,可以设置可搜

FileUtils的作用


课程视频教程地址:http://edu.csdn.net/course/detail/1342/20982?auto_start=1


FileUtils是Cocos2d-x里面的文件管理类。它对我们游戏中的资源文件起到管理的作用,可以说是游戏资源管理的大管家。FileUtils可以进行读写文件,可以设置可搜索路径,可以获得资源文件的绝对和相对路径,可以判断文件和文件夹是否存在,可以获得资源文件的大小,等。很多对文件操作的所需的功能FileUtils都有对应的接口。所以说,没有FileUtils的存在,Cocos是不完整,是残缺的。

如何获得FileUtils的实例

FileUtils是通过的它的getInstance()方法来获取的,代码如下:



这儿要提示大家一个小Tips,cocos2d-x凡是通过getInstance()获得对象的方法都是单例对象。也就是说我们通过上面代码获得的FileUtils是个单例对象。下面我们查看一下引擎源码,看看getInstance()方法的实现。


可以看到首先声明了一个静态的FileUtils对象,并通过单例的设计模式实现了getInstance()方法,在方法体里面可以看到调用了init()方法,这是cocos2d-x经常用到切独有的一种设计模式,叫做二段构建模式。在很多类的create()方法中也是使用静态工厂+二段构建的设计模式来实现的,随着我们课程的学习,大家会发现cocos2d-x中还有好多类都是通过getInstance()方法来获得实例对象的,这些对象都是单例对象,也就是说在引擎里只存在一个实例对象,这样做方便管理,使用起来也很高效,毕竟获得的是静态实例。

FileUtils的使用

FileUtils主要在一下五个方面进行使用。

第一:可以使用FileUtils来添加项目的搜索路径,下面来看一下如何通过代码编写来添加项目的搜索路径,代码如下:

代码注释写的很清楚,大家一定要明白addSearchPath和setSeachPath直接的区别,因为游戏的热更新就用到了这个知识点。

第二:可以使用FileUtils来写入数据到文件中,代码如下:


通过代码我们可以看出,首先我们要获取可写路径,然后使用C语言的FILE进行字符的写入操作。执行完代码之后会在可写路径里生成以“external.txt”命名的文件,如图:


第三:文件的读取,我们可以通过以下代码进行文件的读取:


运行代码,可以看到成功打印了文件里面的字符,打印结果如图所示:


从打印的结果可以看出,打印的是上次我们写入的字符。那么这两个方法都能读取文件内容,他们的区别是什么呢,它们的区别就是getDataFromFile获取到的内容是二进制的,需要通过getbytes来获得读取的数据,而getStringFromFile是直接获得string的字符串。

第四,判断文件或者文件夹是否存在:

我们可以通过FileUtils的接口来判断文件或者文件夹是否存在,代码如下:


通过代码注释大家应该能看懂如何使用FileUtils的方法判断文件,文件夹是否存在,这儿我就不为大家过多的讲解。


第五:创建和删除文件夹

通过FileUtils的接口还可以实现创建和删除文件夹。代码如下:



课程总结


本节课我们主要讲解了FileUtils的使用,通过FileUtils的接口调用,可以完成搜索路径的设置,文件的写入,文件的读取,判断文件或文件夹是否存在,创建或者删除文件夹的操作。使用起来很方便,并且通过设置文件夹的搜索路径,就可以减少在实际开发中使用某一个文件的时候要写全路径才可以使用的麻烦。并且通过FileUtils的搜索路径存在优先级的特性,可以完成游戏热更新的问题。通过本节课的学习,希望大家对Cocos2d-x的文件系统有个初步的了解,为我们以后的课程学习打好基础。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读