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