我正在为游戏创建一个保存游戏文件,但我的 PrintWriter
只是用任何内容覆盖该文件,而不是我需要的数字。
代码如下:
public void fileWriter() throws FileNotFoundException {
PrintWriter print = new PrintWriter(new File("C:\\Users\\john\\Desktop\\stats.txt"));
print.print(String.valueOf(this.swordNumber) + " ");
print.print(String.valueOf(this.shieldNumber) + " ");
print.print(String.valueOf(this.monstersDefeated) + " ");
print.print(String.valueOf(this.damageDealt));
}
我已经尝试了一切方法来打印这些变量,包括 String.valueOf
但它不起作用。
最佳答案
您应该正确使用Java的资源try-catch block 。即使抛出任何异常,这也会自动关闭流:
public void fileWriter() throws FileNotFoundException {
File file = new File("C:\\Users\\john\\Desktop\\stats.txt");
try (PrintWriter print = new PrintWriter(file)) {
print.print(Integer.toString(swordNumber) + " ");
print.print(Integer.toString(shieldNumber) + " ");
print.print(Integer.toString(monstersDefeated) + " ");
print.print(Integer.toString(damageDealt));
}
}
此外,我建议使用 Integer.toString()
而不是 String.valueOf()
,以使类型转换更加明显。
关于java - 无法让 PrintWriter 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32288993/