以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