FileUtils的作用
FileUtils是Cocos2d-x里面的文件管理类。它对我们游戏中的资源文件起到管理的作用,可以说是游戏资源管理的大管家。FileUtils可以进行读写文件,可以设置可搜索路径,可以获得资源文件的绝对和相对路径,可以判断文件和文件夹是否存在,可以获得资源文件的大小,等。很多对文件操作的所需的功能FileUtils都有对应的接口。所以说,没有FileUtils的存在,Cocos是不完整,是残缺的。
如何获得FileUtils的实例
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的接口还可以实现创建和删除文件夹。代码如下: