BufferedWriter没有写整个文件 - 只有一些文件

时间:2013-10-17 13:03:36

标签: java bufferedwriter

我正在尝试将ArrayList中的元素写入文本文档。我的缓冲区编写器代码如下(使用实际的文件路径):

Path file = Paths.get("(filepath)");
    BufferedWriter writer = Files.newBufferedWriter(file, Charset.forName("US-ASCII"));
    for (int j = 0; j < 100000; j++) {
        writer.write(Integer.toString(radicalsAndPositions.get(j).get(0)) + "," + Integer.toString(radicalsAndPositions.get(j).get(1)) + " , " + "\n");
    }

arraylist已满到第100,000个元素,并且它会生成一个文件,但是会遗漏最后的值。当我将'j'限制为10,000时,我只生成了第一个9170行。有了100,000,我只获得了第99250行。

将'j'限制为1000会给我一个空文件。

文档正确生成,使用正确的元素,它只是过早地结束。为什么会这样,我该如何解决?

3 个答案:

答案 0 :(得分:3)

完成后关闭缓冲的写入器以确保刷新缓冲区。

答案 1 :(得分:3)

关闭BufferedWriter对象。

writer.close();

除非您关闭BufferedWriter

的对象,否则它不会写入您的文件

答案 2 :(得分:2)

写入文件后再写writer.flush()

writer.close() is also a good choice