我正在尝试将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会给我一个空文件。
文档正确生成,使用正确的元素,它只是过早地结束。为什么会这样,我该如何解决?
答案 0 :(得分:3)
完成后关闭缓冲的写入器以确保刷新缓冲区。
答案 1 :(得分:3)
关闭BufferedWriter对象。
writer.close();
除非您关闭BufferedWriter
。
答案 2 :(得分:2)
写入文件后再写writer.flush()
writer.close() is also a good choice