25.FileUtils本地文件读写

FileUtils

1: jsb是javascript bind的代表,整个C/C++ 导出的绑定都在这个jsb里面,jsb 支持不支持h5;
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工具类的;

 

例子:game_scene.js

// Learn cc.Class:
//  - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/class.html
//  - [English] http://docs.cocos2d-x.org/creator/manual/en/scripting/class.html
// Learn Attribute:
//  - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
//  - [English] http://docs.cocos2d-x.org/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
//  - [English] https://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html

cc.Class({
    extends: cc.Component,

    properties: {
        // foo: {
        //     // ATTRIBUTES:
        //     default: null,        // The default value will be used only when the component attaching
        //                           // to a node for the first time
        //     type: cc.SpriteFrame, // optional, default is typeof default
        //     serializable: true,   // optional, default is true
        // },
        // bar: {
        //     get () {
        //         return this._bar;
        //     },
        //     set (value) {
        //         this._bar = value;
        //     }
        // },
    },

    // LIFE-CYCLE CALLBACKS:

    onLoad () {

        //获取全局的工具类实例
        //如果在电脑的模拟器上,就是creator安装目录下模拟器的位置
        //如果在手机上,那么就是手机OS为这个app分配的可读写的路径
        //jsb --> javascript bind --> jsb不支持H5
        var write_path = jsb.fileUtils.getWritablePath(); //会随着卸载删除
        console.log(write_path);

        //在可写的路径下创建一个文件夹  路径也可以是外部sd卡路径(卸载后数据还在)
        var new_dir = write_path + "new_dir";
        if(!jsb.fileUtils.isDirectoryExist(new_dir)) { //判断文件夹是否存在
            jsb.fileUtils.createDirectory(new_dir);
        }else {
            console.log("is exis!!!!");
        }
        
        //读写文件 
        // 1)文本文件  读
        var read_obj = jsb.fileUtils.getStringFromFile(new_dir + "/test_string_read.txt");
        console.log("read_obj ---> " + read_obj);
        //写
        var str_data_write = "test string wirte hello!!!!!!";
        jsb.fileUtils.writeStringToFile(str_data_write, new_dir + "/test_string_write.txt");

        //2)二进制文件 读 Uint8Arrary 图片算二进制资源
        var bin_array = jsb.fileUtils.getDataFromFile(new_dir + "/test.jpg");
        console.log("bin_array ---> ", bin_array);
        //写
        jsb.fileUtils.writeDataToFile(bin_array, new_dir + "/test_bin_write.png");

    },

    start () {

    },

    // update (dt) {},
});

工程截图

25.FileUtils本地文件读写_第1张图片

 

你可能感兴趣的:(cocos,creator)