PrintWriter覆盖数据

时间:2015-08-30 21:21:27

标签: java file-io printwriter

我试图在我正在做的游戏中追踪高分:

PrintWriter out = new PrintWriter(new File("path"));
while(gameLoop) {
    out.write(highScore);
    out.flush();
}

它会不断将数据附加到文件末尾。我知道我可以out.close();然后out = new PrintWriter(new File("path"));,但这似乎是很多过多的代码。不断关闭并重新打开文件以实现覆盖。我的PrintWriter有没有办法覆盖数据而不关闭并重新打开文件?

1 个答案:

答案 0 :(得分:1)

首先,我建议您将print(或println)与PrintWriter一起使用。接下来,如果我理解您的问题,您可以使用try-with-resources Statement之类的内容,例如

while (gameLoop) {
    try (PrintWriter out = new PrintWriter(new File("path"))) {
        out.println(highScore);
    }
}

close并在循环的每次迭代中重新打开PrintWriter。或者,你可以使用nio和类似的东西

Path file = Paths.get("path");  
while (gameLoop) {
    byte[] buf = String.valueOf(highScore).getBytes();
    Files.write(file, buf);
}