uniapp安卓本地文件读写封装与使用示例
作者:工具松鼠时间:2026-10-31 07:58:24浏览:193
本文介绍如何在uniapp安卓环境下封装文件IO操作。通过plus.io.requestFileSystem获取文件系统,利用getFile创建或打开文件,并通过createWriter实现写入。示例展示了如何封装storage方法,并在业务代码中调用读写接口,处理文件不存在时的默认值逻辑,帮助开发者快速实现本地数据持久化。
首先,我们需要封装一个专门用于处理文件IO操作的模块,命名为io.js。该模块将封装底层API,提供统一的读写接口。
export default {
storage(addr,data) {
plus.io.requestFileSystem(
plus.io.PUBLIC_DOCUMENTS, // 程序公用文档目录常量
fs => {
// 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象
fs.root.getFile(
addr, {
create: true // 文件不存在则创建
},
fileEntry => {
// 文件在手机中的路径
//console.log(fileEntry.fullPath)
fileEntry.createWriter(writer => {
// 写入文件成功完成的回调函数
writer.onwrite = e => {
console.log('写入成功');
};
// 向文件中写入数据
writer.write(
JSON.stringify(data)
);
});
},
e => {
console.log('getFile failed: ' + e.message);
}
);
},
e => {
console.log(e.message);
}
);
},
read(addr) {
let that = this;
return new Promise((resolve, reject) => {
plus.io.requestFileSystem(
plus.io.PUBLIC_DOCUMENTS,
fs => {
fs.root.getFile(
addr, {
create: false
},
fileEntry => {
fileEntry.file(function(file) {
console.log('文件大小:' + file.size + '-- 文件名:' + file.name);
//创建读取文件对象
let fileReader = new plus.io.FileReader();
//以文本格式读取文件数据内容
fileReader.readAsText(file, 'utf-8');
//文件读取操作完成时的回调函数
fileReader.onloadend = function(evt) {
resolve(evt.target.result)
//console.log("提取的服务器地址:", sURL);
};
});
},
e => {
reject(e)
console.log(e)
}
);
},
e => {
reject(e);
console.log(e.message);
}
);
})
}
}
接下来演示如何在实际业务中调用上述封装好的模块。
在需要执行文件操作的页面或逻辑中,引入刚才创建的io.js文件。
IO.read("文件名称.json").then(res => {
// res 读取的文件内容
}).catch(err => {
// 找不到该文件就写入一个空白文件。
IO.storage("名称.json", [])
console.log(err, "err")
})总结
至此,关于uniapp在安卓平台进行本地文件写入与读取的示例介绍完毕。如需了解更多相关内容,建议查阅本站过往文章或继续浏览后续教程,感谢支持。
作者最新文章
JS表单序列化出现中文乱码怎么解决
2026-11-05 17:21:05
JS代码在线格式化工具推荐:无需安装快速美化
2026-11-05 17:17:49
WebStorm内置JS代码格式化功能怎么用
2026-11-05 10:10:47
在线JS代码格式化与混淆压缩工具推荐及使用指南
2026-11-03 20:31:53
CodePen、JSFiddle与RunJS对比:哪款在线JavaScript编辑器更好用
2026-11-03 18:52:45
