uniApp native.js 读写文件

以plus.io写文件的方式,创建的文件位于包文件下,删除包文件后,创建的文件丢失,需要永久保存数据到手机文件夹根目录采用native.js创建 ,代码如下

//native.js创建文件及删除文件
let dir = '/xf_store';
let pathUrl = '/xf_store/sf_store_data.txt';
// #ifdef APP-PLUS
let environment = plus.android.importClass("android.os.Environment");
var sdRoot = environment.getExternalStorageDirectory();  //文件夹根目录
var File = plus.android.importClass("java.io.File");
var BufferedReader = plus.android.importClass("java.io.BufferedReader");
var FileReader = plus.android.importClass("java.io.FileReader");
var FileWriter = plus.android.importClass("java.io.FileWriter");
// #endif
const whiteFile = function(res){
    // #ifdef APP-PLUS
    res = JSON.stringify(res)+',';
    console.log(res)
    try {
              //不加根目录创建文件(即用相对地址)的话directory.exists()这个判断一值都是false
        console.log(sdRoot+dir)
        let directory = new File(sdRoot+dir);
        if(!directory.exists()) {
            console.log('创建目录')
            directory.mkdirs(); //创建目录
        }
        let file = new File(sdRoot+pathUrl);
        console.log(file.exists())
        if(!file.exists()) {
            file.createNewFile(); //创建文件
        }
        let fos = new FileWriter(sdRoot+pathUrl,true);
        fos.write(res);
        fos.close();
        return true;
    } catch(e) {
        console.log(e);
        return false;
    }
    return false;
    //#endif
}
const deleteFile = function(){
    //#ifdef APP-PLUS
    let file = new File(sdRoot+pathUrl);
    console.log(file.exists())
    console.log(file.isFile())
    if(file.exists() && file.isFile()) {
        return file.delete();
    } else {
        return false;
    }
    //#endif
}
const readFile = function(call){
    //#ifdef APP-PLUS
    let readFr = new File(sdRoot+pathUrl);
    let txt = '';
    try{
        var reader = new BufferedReader(new FileReader(readFr))
        let txt = reader.readLine();
        console.log(txt)
        call(txt)
    }catch(e){
        console.log(e)
        return '';
    }
    //#endif
}

ps:不加根目录创建文件(即用相对地址)的话directory.exists()这个判断一值都是false

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。