我的作业要求我制作一个简单的mathGame,它会产生随机数学问题。程序必须在文本文件中记录正确的数量和不正确的数量。它还必须更新现有文件的统计信息,而不是覆盖它们。
这就是我创建每个文件的方式:
try {
writer = new FileWriter(userName + " Stats.txt", true);
outputfile = new PrintWriter (writer);
} catch (IOException e) {
}
以下是写入文件的内容:
public static void saveStats () {
outputfile.println();
outputfile.println("Correct Answers:"+ correct);
outputfile.println("Incorrect Answers:" + incorrect);
if (money > 0) {
outputfile.printf("Earnings: $%.2f", money);
outputfile.println();
}
else {
float moneyNegative = Math.abs(money);
outputfile.printf("Earnings: -$%.2f", moneyNegative);
outputfile.println();
}
outputfile.flush();
}
以下是退出程序后文本文件的示例输出:
Correct Answers:0
Incorrect Answers:1
Earnings: -$0.03
正确,不正确,金钱都是全局变量,并初始化为0.如果我重新启动程序,我的文件仍然存在,但正确的答案,错误的答案和收入的值将被覆盖或新的条目该文件将被添加。我只是想更新它。
以下是我的所有代码:https://pastebin.com/1Cmg5Rt8
答案 0 :(得分:0)
您是否尝试过先获取原始文本,然后在开始编写所需内容之前编写原始文本?
基本上,您从开头的文件中获取输入
Scanner s = new Scanner(new File("FileName.txt"));
然后,您可以遍历它并写入文件。
while(s.hasNextLine())
{
outputfile.println(s.nextLine());
}
将所有先前的文件重写到文本中后,您可以运行其余代码,而不会覆盖信息。
此外,您可以抛出IOException
而不是try-catch