PrintWriter 覆盖数据
PrintWriter overwrite data
我正在尝试跟踪我正在制作的游戏中的高分:
PrintWriter out = new PrintWriter(new File("path"));
while(gameLoop) {
out.write(highScore);
out.flush();
}
它一直将数据追加到文件末尾。我知道我可以 out.close();
然后 out = new PrintWriter(new File("path"));
但这似乎有很多多余的代码。不断关闭并重新打开文件以实现覆盖。有什么方法可以让我的 PrintWriter
在不关闭并重新打开文件的情况下覆盖数据吗?
首先,我建议您使用 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);
}
我正在尝试跟踪我正在制作的游戏中的高分:
PrintWriter out = new PrintWriter(new File("path"));
while(gameLoop) {
out.write(highScore);
out.flush();
}
它一直将数据追加到文件末尾。我知道我可以 out.close();
然后 out = new PrintWriter(new File("path"));
但这似乎有很多多余的代码。不断关闭并重新打开文件以实现覆盖。有什么方法可以让我的 PrintWriter
在不关闭并重新打开文件的情况下覆盖数据吗?
首先,我建议您使用 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);
}