[問題] Android 寫檔案的問題

作者: freedls (阿嬤覺得你冷)   2015-07-13 17:20:46
Code 片段如下:
1. File file = new File(filePath);
2. String xmlString = XMLFileManager.instance.updateLockFileXml(file,value);
3. FileOutputStream fop = new FileOutputStream(file);
4. if(xmlString!=null && !xmlString.equals(""))
5. {
6. byte[] contentInBytes = xmlString.getBytes();
7. fop.write(contentInBytes);
8. fop.flush();
9. fop.close();
10. }
小弟目前遇到一個寫xml檔中斷的問題,
如果將中斷點設定在第4行,
也就是當程式進行到將file內的資訊餵給FileOutputStream後,
此時將裝置強制關機或斷電,
則下次重開機後,filePath那個檔案的內容會變成空的,
請問是否有什麼機制可以避免在FileOutputStream尚未close之前斷電,
而原本檔案內容可以保持不變?
會需要避免這樣的情況發生是因為,
目前功能需求需要紀錄某些資訊,而這些資訊在APP移除後必須還存在,
因此才會用寫檔案的方式記錄,
而斷電或關機則是測試時須考量到萬一停電時的狀況,
目前就是被測試出來程式在執行時斷電,會有很高的機率讓原本的檔案內容變空的,
請各路高手求解... <(_ _)>
感謝感謝。
作者: ssccg (23)   2015-07-13 17:28:00
如果目標是不要蓋掉原本的檔案,就先寫到另一個檔案成功之後再改檔名那你可以去看SharedPreferences的寫檔方式流程是先把原本檔案改名當備份,然後才寫新檔,失敗就復原

Links booklink

Contact Us: admin [ a t ] ucptt.com