重要文件写操作请用FileOutputStream,FileWriter有坑

来源:互联网 发布:ubuntu 删除文件 编辑:程序博客网 时间:2024/06/06 20:10


        使用FileWriter写文件,一、覆盖写入(会清空文件内容),二、追加写入;当使用FileWriter覆盖写入时,碰到设备突然断电,会容易导致文件变成空文件,文件内容彻底丢了。所以,对于不带电池的设备来讲,重要文件写操作不要使用FileWriter,请使用FileOutputStream;


FileOutputStream fos = null;try {    fos = new FileOutputStream("/sdcard/xxx.xml");    //将buf中的数据写入fos    fos.write(xxxx);    //将fos的数据保存到内核缓冲区    //不能确保数据保存到物理存储设备上,如突然断点可能导致文件未保存    fos.flush();    //将数据同步到达物理存储设备    FileDescriptor fd = fos.getFD();    fd.sync();} catch(Exception e) {    e.printStackTrace();} finally {    if(fos!=null)        fos.close();}

        使用FileOutputStream写文件碰到异常断电也会概率性出现文件变成空文件的情况,并不完全保险。所以,重要文件需要同时使用双备份机制。


阅读全文
0 0
原创粉丝点击