我试图从一个ArrayList的元素写入文本文件。我的BufferedWriter代码如下(与实际文件路径):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");
}
该ArrayList充满达100,000元件,并生成一个文件,而是从端错过值。当我将'j'限制为10,000时,我只能得到生成的第一批9170行。在全部10万条的情况下,我只获得了99250条线。
将'j'限制为1000会给我一个空文件。
该文档生成正确,正确的元素,它只是过早地结束。为什么是这样,我该如何解决它?
是否有原因如果没有结束,它只会部分写入? – Useablelobster
BufferedWrite的概念是缓冲。当缓冲区满时它会刷新并减少单独的IO操作的数量。当你调用flush和关闭writer时,它也会刷新。 – Thomas
是的,肯定是有原因的。它关闭您正在编写文件的当前流。它需要被关闭,以反映你在一个文件中所做的改变。它也刷新流。 – Prasad