我正在修改我在互联网上找到的2048游戏,这样当他输掉或重置游戏时,它会打印出玩家最后给出的分数。但是,我在保存所有分数方面遇到了问题。它确实有效,但每次播放器重置或丢失时程序都会覆盖该文件。
这是我的作家班。
class writer {
public void writing(int desiredText) {
try {
//Whatever the file path is.
File highScores = new File("C:/Users/Anthony/Desktop/Java/highScores.txt");
FileOutputStream is = new FileOutputStream(highScores);
OutputStreamWriter osw = new OutputStreamWriter(is);
Writer w = new BufferedWriter(osw);
String desiredText_string = Integer.toString(desiredText);
w.write(desiredText_string);
w.close();
} catch (IOException e) {
System.err.println("Problem writing to the file highScores.txt");
}
}
}
请注意,这是作家需要的确切时刻。
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
write.writing(myScore);
resetGame();
}
if (!canMove()) {
write.writing(myScore);
myLose = true;
}
... (code is continued on...)
答案 0 :(得分:3)
如果您不想overwrite
但想要append
此处文件末尾的新数据是如何继续:
FileOutputStream is = new FileOutputStream(highScores, true);
答案 1 :(得分:1)
另一种解决方案(我不确定是否更好)是每次游戏结束时创建一个新文件:
Date date = new Date();
File highScores = new File("C:/Users/Anthony/Desktop/Java/highScore"+date+".txt");
在文件名末尾添加时间戳。