1

我正在尝试将 ArrayList 中的元素写入文本文档。我的 bufferedwriter 代码如下(带有实际的文件路径):

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");
    }

数组列表已满,直到第 100,000 个元素,它生成一个文件,但从末尾丢失了值。当我将“j”限制为 10,000 时,我只会生成前 9170 行。用完整的 100,000,我只得到前 99250 行。

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

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

4

3 回答 3

3

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

于 2013-10-17T13:05:08.070 回答
3

关闭 BufferedWriter 对象。

writer.close();

除非您关闭BufferedWriter.

于 2013-10-17T13:07:39.273 回答
2

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

writer.close() is also a good choice
于 2013-10-17T13:06:06.267 回答