[问题] 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