FileWriter不会写所有文件 - 是的,我调用了close()

时间:2015-07-17 09:18:26

标签: java android eclipse filewriter

以下是代码:

        FileWriter writer = new FileWriter(csv);
        for (String line: lines) {
            writer.write(line);
            writer.write("\r\n");
            Log.d(TAG, line);
        }
        writer.close();

每一行都在LogCat中完美显示,并且不会在任何地方抛出任何错误,但实际文件会在第二行末尾中断。

编辑:

原来这个问题是Android的一个已知错误:https://code.google.com/p/android/issues/detail?id=38282

我通过在writer.close:

之后添加以下行来解决问题

MediaScannerConnection.scanFile(context,new String [] {file.getAbsolutePath()},null,null);

2 个答案:

答案 0 :(得分:1)

原来这个问题是Android的一个已知错误:https://code.google.com/p/android/issues/detail?id=38282

我通过在writer.close:

之后添加以下行来解决问题

MediaScannerConnection.scanFile(context,new String [] {file.getAbsolutePath()},null,null);

答案 1 :(得分:0)

我认为你写的内容仍然在内存中而不是同步到磁盘。

有时,FileSystem会等待更多内容一起刷新到磁盘。