小程序开发中,会有一些场景需要用到文件的读写。在之前的一个项目中,需要分析设备的在持有者手中的运动状态,并通过分析设备上的重力加速计和方向传感器的数据获取设备位置和方位信息,因为数据太多,靠实时上传肯定不现实,于是就决定通过实时写入文件,运行一段时间之后,再去读取文件内容,再去上传。
(真心简略,谁看得懂啊,手动狗头保命:))
还是自己来撸吧
建立全局变量fsm。参数data就是我们要写入文件的内容。filePath很关键,如果没写对的话,你根本就找不到它到哪儿去了,也没有权限写。wx.env.USER_DATA_PATH是微信允许用户写入文件的文件夹。\n可以用来换行。
let fsm = wx.getFileSystemManager();
fsm.writeFile({
filePath: wx.env.USER_DATA_PATH + '/tmp.txt',
data: "深蹲数据" + util.formatDate(new Date(), "yyyyMMdd_HHmmss") + "\n",
encoding: 'utf8',
success: res => {
console.info(res)
},
fail: res => {
console.info(res)
}
})
二,追加内容到文件
如果前面已经获取过文件系统管理器fsm,这里就只需要用就够了。同样,data就是要追加到文件的内容。
let fsm = wx.getFileSystemManager();
fsm.appendFile({
filePath: wx.env.USER_DATA_PATH + '/tmp.txt',
data: '[' + aX + ',' + aY + ',' + aZ + "],\n",
encoding: 'utf8',
success: res => {
console.info(res)
},
fail: res => {
console.info(res)
}
});
三,读取保存的文件
先保存之后才能读取文件,保存之后可以获得临时文件的地址,然后用这个地址作为读取时的参数。读取之后就可以做上传等逻辑了,这里我就省略了。
let fsm = wx.getFileSystemManager();
wx.saveFile({
tempFilePath: wx.env.USER_DATA_PATH + '/tmp.txt',
success(res) {
fsm.readFile({
filePath:res.savedFilePath,
encoding: 'utf8',
success:function(res){
console.log(res.data)
}
})
}
})
是不是很简单? 其实整个文件的读写和追加,只要知道保存的地址在哪儿就很好写了,但是官方API中却没有,神不神奇?意不意外?
码字不易,如果觉得有帮助,一定要给我点赞哟~~
不然信不信我砸了你家灯,半夜偷亲你 ( ̄ε  ̄) !!!