Java 无法让PrintWriter工作
我正在为一个游戏创建一个保存游戏文件,但是我的Java 无法让PrintWriter工作,java,io,printwriter,Java,Io,Printwriter,我正在为一个游戏创建一个保存游戏文件,但是我的PrintWriter只是用我需要的数字而不是任何内容覆盖了该文件 代码如下: public void fileWriter() throws FileNotFoundException { PrintWriter print = new PrintWriter(new File("C:\\Users\\john\\Desktop\\stats.txt")); print.print(String.valueOf(this.sword
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
,但它不起作用。您在退出之前没有关闭流,
而且它没有被正确地冲洗和关闭。
写完后添加这一行:
print.close();
使用文件句柄后,应始终关闭它们
更妙的是,用资源将整个过程包装起来:
try (PrintWriter writer = new PrintWriter(new File("C:\\Users\\john\\Desktop\\stats.txt"))) {
// ...
}
这样你就不用担心关闭它了,
因此,您永远不能“忘记”它。您应该正确使用Java的资源try-catch块。这将自动关闭流,即使引发任何异常:
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()
,以使类型转换更加明显。你说它不起作用是什么意思?如果文件没有任何输出,请尝试在打印写入程序上关闭。最佳答案。我也喜欢关于使用Integer.toString()
的注释。