該應用程序記錄傳感器數據並將數據寫入.txt文件到手機SD卡中。Android - 刪除.txt文件中最後一個不完整的行
在數據收集過程中,可以隨時按停止按鈕停止書寫。
有關書寫部如下:
myFile = new File("/sdcard/ResearchData/"
+ txtData.getText() + ".txt");
myFile.createNewFile();
fOut = new FileOutputStream(myFile);
myOutWriter = new OutputStreamWriter(fOut);
myBufferedWriter = new BufferedWriter(myOutWriter);
myPrintWriter = new PrintWriter(myBufferedWriter);
myPrintWriter.write(currentTime - startTime + " " + acceleration[0]
+ " " + acceleration[1] + " " + acceleration[2] + "\n");
一旦按下STOP鍵,以下代碼被執行。
myOutWriter.close();
fOut.close();
的代碼運行不錯,但唯一的問題是,由於人們可以隨時按下停止,所以.txt文件的最後一行始終是不完整的。由於需要數據分析,我需要這些數據是一個很好的矩形矩陣。因此,我需要刪除最後一個不完整的行。我該怎麼做?
或從另一個角度解決這個問題。我可以使STOP按鈕與寫入過程同步嗎?即一行完成寫入後,檢查STOP。
是的,你的假設對我而言都是有效的。所以你的想法是:一旦停止按鈕被按下,你關閉所有的傳感器,以便onSensorChanged()方法不會被調用?這可以確保最後一行數據已完全寫入? –
是的,因爲您在寫入最後一行後取消註冊傳感器偵聽器並關閉文件。 – faradaj