小程序開發中,會有一些場景需要用到文件的讀寫。在之前的一個項目中,需要分析設備的在持有者手中的運動狀態,並通過分析設備上的重力加速計和方向傳感器的數據獲取設備位置和方位信息,因為數據太多,靠實時上傳肯定不現實,於是就決定通過實時寫入文件,運行一段時間之后,再去讀取文件內容,再去上傳。
官方API (真心簡略,誰看得懂啊,手動狗頭保命:))
還是自己來擼吧
一,寫新文件
建立全局變量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中卻沒有,神不神奇?意不意外?
碼字不易,如果覺得有幫助,一定要給我點贊喲~~
不然信不信我砸了你家燈,半夜偷親你 ( ̄ε  ̄) !!!