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

FileWriter won't write all of the file - yes, I have called close()

代码如下:

        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(上下文, new String[] { file.getAbsolutePath() }, null, null);

我觉得你写的内容还在内存里,没有同步到磁盘。

有时文件系统会等待更多内容一起刷新到磁盘。

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

我通过在 writer.close 之后添加以下行解决了这个问题:

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