uni-app进行文件的读写以及删除

1,687 阅读1分钟

uni-app进行文件的读写以及删除

file.js

let dir = '/YXC';
let filePath = '/YXC/yxc.txt'; 
// 注意:这里读取和存储的都是字符串,所以如果想要存储对象,要转成字符串存储

// #ifdef APP-PLUS
//获取手机储存空间的根目录
let environment = plus.android.importClass("android.os.Environment");
var rootPath = 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 readFile = function() {
	let readFr = new File(rootPath + filePath);
	try {
		const reader = new BufferedReader(new FileReader(readFr)) 
		let txt
		let retxt = ''
		// 判断当前行是否有内容
		let textflag = true
		while (textflag) {
			// 一行一行读取文件,直到读取到空的行
			txt = reader.readLine()
			if (txt == null) {
				textflag = false
				break
			}
			retxt = retxt + txt
		}
		return retxt
	} catch (e) {
		console.log(e)
		return ''
	}
}

export const writeFile = function(content) {
	try {
		// 判断我们自己的文件目录是否存在
		let directory = new File(rootPath + dir); 
		if (!directory.exists()) {
			directory.mkdirs(); 
		}
		// 判断文件是否存在
		const file = new File(rootPath + filePath)
		if (!file.exists()) {
			// 创建文件
			file.createNewFile() 
		}  
		// 写入文件
		const fos = new FileWriter(rootPath + filePath, true)
		fos.write(content) 
		fos.close()
		return true
	} catch (e) { 
		console.log(e)
		return false
	}
   
	return true
}

export const deleteFile = function() {
    //#ifdef APP-PLUS
    let file = new File(rootPath + filePath);
    if (file.exists() && file.isFile()) {
        return file.delete();
    } else {
        return false;
    }
    //#endif
}

index.js

import {readFile,writeFile} from '@/common/utils/file.js'
let data = readFile()
console.log(data); 
if(!data){
// 存储对象
writeFile(JSON.stringify({
        name:'12',
        age:'123'
   })) 
   writeFile('content') 
}     

申请读写权限

uni-app项目

在"app-plus" -> "distribute" -> "android" 节点下添加 permissionExternalStorage 节点

"permissionExternalStorage": {
	"request": "once",
	"prompt": "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
}