0
我正在構建一個Android應用程序,用於將加速度計和陀螺儀數據記錄到文本文件中。在大多數教程中,他們使用一種方法創建兩個文本文件,每秒打開和關閉它們每次50次。即:連續寫入文件的最佳方式(每秒50次)
private static void writeToFile(File file, String data) {
FileOutputStream stream = null;
try {
stream = new FileOutputStream(file, true);
stream.write(data.getBytes());
} catch (FileNotFoundException e) {
Log.e("History", "In catch");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
即每SensorEvent,你打開文件,寫入值,然後關閉該文件,然後再次打開它20毫秒之後。
這一切似乎工作正常,我只是想知道是否有更好的方法去做呢?我嘗試了一些使用布爾標誌的更改來說明流是否已打開,然後將不同的writeToFile if標誌設置爲true,但顯然fileOutputStream有時會在20毫秒的時間範圍內自行關閉,並且應用程序崩潰。
所以我想我的問題是:多少系統資源需要多次打開,寫入和關閉文件?這是否正常,而不是我應該擔心的事情,還是有更好的做事方式?請記住,連續的傳感器記錄功能已經對電池壽命產生影響,所以我希望儘可能有效地做到這一點。
謝謝
'FileOutputStream'不會緩衝,所以它不需要刷新,但他應該使用緩衝區的東西,即它周圍的'BufferedOutputStream'。讓它自己沖洗。 – EJP
謝謝,感謝信息! –