uniapp 读写文件

// uniapp在打包5+app时可以使用native.js进行文件的读写以及删除
let dir = '/YCAndroidapp';//这个是你的文件夹名 可以修改,但要和下列的对齐
let pathUrl = '/YCAndroidapp/android_app.JSON';//文件夹下的文件  想在这文件夹创多个的话 let pathUrl = '/YCAndroidapp/  我就一个所以写死了
// #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
export const writeFile = function(res) {//暴露出去, res 是添加的内容 和上面创建多个文件对齐 举个例子 writeFile(内容,要存的文件名)  writeFile(res,fileName) 注意我也没试过哪种的后缀名不能存 
    try {
		
        //不加根目录创建文件(即用相对地址)的话directory.exists()这个判断一值都是false
        console.log(sdRoot + dir)
        let directory = new File(sdRoot + dir);
        if (!directory.exists()) {
            directory.mkdirs(); //创建目录也就是文件夹
        }
        let file = new File(sdRoot + pathUrl);//存多文件 File(sdRoot + pathUrl+fileName)
        console.log(file.exists())//看看有没有存过
		
        if (file.exists()) {
            file.delete() //删除存的文件   //我是先读取之前存的,和要存的合并在存
        }
		file.createNewFile(); //创建文件
         let fos = new FileWriter(sdRoot + pathUrl, true);//let fos = new FileWriter(sdRoot + pathUrl+fileName, true); 创个多个文件
        fos.write(res);//存
        fos.close();
        return true;
    } catch (e) {
        console.log(e);
        return false;
    }
    return false;
    //#endif
}
 
export const readFile = function(call) {//读取  //创多个时,读取指定的文件function(fileName)
    //#ifdef APP-PLUS
       let readFr = new File(sdRoot + pathUrl);//new File(sdRoot + pathUrl+fileName)
    let txt = '';
    try {
        var reader = new BufferedReader(new FileReader(readFr))
        let arr = [];
        let txt;
        while ((txt = reader.readLine()) != null) {
            arr.push(txt)
        }
		return arr//全部返回出来
    } catch (e) {
        console.log(e)
        return '';
    }
    //#endif
}
 

//下面是我的使用方法//仅供参考
import {
	writeFile,
	 readFile
} from '@/utils/StoreLocal.js'

const res =readFile()//创多个文件读取指定的文件 readFile(文件名称)
const ras ={
...res,
新存的值
}
writeFile(ras)//创多个文件writeFile(ras,文件名称)

注:我也是个使用者,使用方法已经写的很清楚了,相信你们可以看懂,出问题了问我我也不清楚,但我用的没事,有问题问原作者,uniapp 读写txt文件_陆潇潇啊的博客-CSDN博客_uniapp 写入文件,原作者是大佬,谢谢配合!!!

你可能感兴趣的:(android,javascript,webview)