cocos creator基础-(二十五)FileUtils本地文件读写

1: 掌握jsb.fileUtils的基本使用;

FileUtils

API   CCFileUtils.h

1:jsb是javascript bind的代表,整个C/C++ 导出的绑定都在这个jsb里面,jsb 支持native,不支持h5(浏览器上无法运行jsb is not defined );

2: FileUtils是本地文件读写的一个工具类,全局只有一个实例;

3: jsb.fileUtils来获取文件读写工具类的实例;

4: jsb.fileUtils.isDirectoryExist(path): 判断路径是否存在;

5: jsb.fileUtils.createDirectory(path); 创建一个路径;

6: jsb.fileUtils.getDataFromFile(path)获取二进制数据; // Uint8Array文本

7: jsb.fileUtils.writeDataToFile(data,path); 写二进制数据; // Uint8Array 对象

8: jsb.fileUtils.writeStringToFile(data,path); 写文本文件; // data String对象

9: jsb.fileUtils.getStringFromFile(path); 获取文本数据; // data String

9: jsb.fileUtils.removeFile(path); 删除掉一个文件;

10: jsb.fileUtils.getWritablePath(); 获取文件的可写目录,是一个内部存储的目录,我们的手机OS会为每个APP分配一个可读写的路径,但是这个App如果卸载以后,这个数据也会被删除;

  如果你要想保存到本地有又是持久的,你可以写入外部存储,外部存储的这个路径也是适用于fileUtils工具类的;

cc.Class({
    extends: cc.Component,

    properties: {
        // foo: {
        //    default: null,      // The default value will be used only when the component attaching
        //                           to a node for the first time
        //    url: cc.Texture2D,  // optional, default is typeof default
        //    serializable: true, // optional, default is true
        //    visible: true,      // optional, default is true
        //    displayName: ‘Foo‘, // optional
        //    readonly: false,    // optional, default is false
        // },
        // ...
    },

    // use this for initialization
    onLoad: function () {
        // jsb.fileUtils获取全局的工具类的实例, cc.director;
        // 如果是在电脑的模拟器上,就会是安装路径下模拟器的位置;
        // 如果是手机上,那么就是手机OS为这个APP分配的可以读写的路径;
        // jsb --> javascript binding --> jsb是不支持h5的
        var writeable_path = jsb.fileUtils.getWritablePath();
        console.log(writeable_path);

        // 要在可写的路径先创建一个文件夹
        var new_dir = writeable_path + "new_dir";
        // 路径也可以是 外部存储的路径,只要你有可写外部存储的权限;
        // getWritablePath这个路径下,会随着我们的程序卸载而删除,外部存储除非你自己删除,否者的话,卸载APP数据还在;
        if(!jsb.fileUtils.isDirectoryExist(new_dir)) {
            jsb.fileUtils.createDirectory(new_dir);
        }
        else {
            console.log("dir is exist!!!");
        }

        // 读写文件我们分两种,文本文件, 二进制文件;
        // (1)文本文件的读,返回的是一个string对象
        var str_data = jsb.fileUtils.getStringFromFile(new_dir + "/test_str_read.txt");
        console.log(str_data);
        str_data = "hello test_write !!!!!"
        jsb.fileUtils.writeStringToFile(str_data, new_dir + "/test_str_write.txt");
        // (2)二进制文件的读写, Uint8Array --> js对象
        var bin_array = jsb.fileUtils.getDataFromFile(new_dir + "/test_bin_read.png");
        console.log(bin_array[0], bin_array[1]); // 使用这个就能访问二进制的每一个字节数据;
        jsb.fileUtils.writeDataToFile(bin_array, new_dir + "/test_bin_write.png");
        // end 

        // 删除文件和文件夹
        // jsb.fileUtils.removeFile(new_dir + "/test_bin_write.png");
        // jsb.fileUtils.removeDirectory(new_dir);
    },

    // called every frame, uncomment this function to activate update callback
    // update: function (dt) {

    // },
});

原文地址:https://www.cnblogs.com/orxx/p/10547076.html

时间: 2024-10-28 20:55:54

cocos creator基础-(二十五)FileUtils本地文件读写的相关文章

cocos creator基础-(二十四)cc.Director与资源加载策略

1: 了解creator场景切换; 2: 了解director基本的一些接口; 3: 理解资源加载的策略; cc.Director对象 1:游戏里面控制管理整个游戏全局对象,包括了场景切换等,为cc.Director对象; 2:导演对象全局只有一个cc.director,大写的为类, 小写的cc.director为全局的导演对象; 3: cc.director来获取导演对象实例; 4: 游戏中各种管理对象都可以通过cc.director获取,比如物理引擎管理,Action管理, 碰撞检测管理等;

cocos creator基础-(二十)物理引擎碰撞检测

1: 理解物体类型和分类,配置碰撞矩阵;2: 编写碰撞响应函数,监听碰撞事件;3: 学会了解Sensor来做触发器,只触发碰撞不改变运动; 物体类型与碰撞矩阵 1: 添加物体类型: Add Layer, 每个类型对应一个名字group与groupIndex2: 创建物体的时候要选择一个类型;3: 配置碰撞矩阵,决定哪些物体类型碰撞; 碰撞事件监听 1: 刚体组件开启碰撞监听;2: 当有碰撞发生的时候,遍历刚体所在的节点所挂的所有的组件,看组件是否实现了碰撞检测函数,如果是,那么调用;3: 在需要

cocos creator基础-(二十九)动画编辑器编辑地图路径

思路 1.利用动画编辑器,设置一个路径,多个路径就编辑多个动画 2.用特定的代码对动画进行处理,获取到路径坐标,大佬已经写好代码,不用自己重复造轮子了(微元法求曲线长度) 获得动画路径的贝塞尔曲线方程 求得每一段贝塞尔曲线的长度 每隔一小段打一个点 最终生成一个路径 3.编写寻路脚本,挂载到物体上,让沿着路径移动 动画编辑 脚本挂载 // gen_map_path.js 动画路径转换坐标的代码 已经升级到2.x cc.Class({ extends: cc.Component, properti

Bootstrap <基础二十五>警告(Alerts)

警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个可选的关闭按钮.为了创建一个内联的可取消的警告框,请使用 警告(Alerts) jQuery 插件. 您可以通过创建一个 <div>,并向其添加一个 .alert class 和四个上下文 class(即 .alert-success..alert-info..alert-warning..ale

cocos creator基础-(二十三)android环境搭建、h5/android 打包发布

1: 了解h5打包发布,要注意的事项; 2: 完成android环境配置与creator 项目android打包; 3: 使用 eclips打开项目或android-studio; h5打包发布 1:引擎模块裁剪,减少引擎体积; 2: resources目录的特性,减少setting.js体积; 3: 订制启动的logo,与样式; 4: resources特性 a:creator里面会根据场景的依赖来打包的我们的资源, 资源没有用的,将不会被打包进来; b:有时候我们需要代码加载我们的资源, c

linux基础二十五

1.grep 文本搜索 2.locate 依赖数据库,非实时查找,查找速度快,模糊查找(updatedb) 3.find 实时查找,精确匹配,速度慢     find [option] [查找路径] [查找条件] [处理动作]         查找路径:默认为当前路径         查找条件:默认为查找指定路径下的所有文件         处理动作:默认为显示                  查找条件             -name "文件名称" 支持使用globbing   

Python学习笔记(二十五)操作文件和目录

摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431925324119bac1bc7979664b4fa9843c0e5fcdcf1e000 Python内置的os模块也可以直接调用操作系统提供的接口函数. >>> import os >>> os.name # 操作系统类型 'nt' 如果是posix,说明系统是Linux.Unix或M

Bootstrap &lt;基础二十六&gt;进度条

Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet Explorer 9 及之前的版本和旧版的 Firefox 不支持该特性,Opera 12 不支持动画. 默认的进度条 创建一个基本的进度条的步骤如下: 添加一个带有 class .progress 的 <div>. 接着,在上面的 <div> 内,添加一个带有 class .prog

Bootstrap &lt;基础二十八&gt;列表组

列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 class .list-group-item. 下面的实例演示了这点: <!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - 基本的列表组</title> <link href="/boo