我必须为我的CSIS课程制作一个gui项目,而我正在使用我正在使用的读写功能。我正在制作一个游戏,你可以在其中击败其中的五个,它会显示一条消息说“你赢了”#34;每次你赢得一场战斗,我都会把它写入一个文件的胜利数量,所以如果你要关闭游戏,你可以在它再次打开时继续。这是我写的代码 - 这是我的阅读方法。
private static int read()
{
int returnValue = 0;
try(Scanner reader = new Scanner("wins.txt"))
{
while(reader.hasNextLine())
{
String read = reader.nextLine();
returnValue = Integer.parseInt(read);
}
}
catch(NullPointerException e)
{
System.out.println("No such File! Please Try Again! " + e.getMessage());
}
return returnValue;
这是我的Write方法。
private static void write(int wins)
{
try(Formatter writer = new Formatter("wins.txt");)
{
writer.format("%d", wins);
}
catch (FileNotFoundException e)
{
System.out.println("File not Found!!");
}
}
wins.txt文件中唯一的内容是Write方法写入的数字。所以我赢了一次然后文件将有" 1"如果我赢了两次,它将会有#34; 2"
每当我运行程序时,它都会抛出NumberFormatException。我不确定为什么这样做是因为我正在解析那个读者读入int的字符串。
答案 0 :(得分:0)
问题是这段代码......
Scanner reader = new Scanner("wins.txt")
...构建Scanner
with the literal text "wins.txt",而不是文件的内容" wins.txt"。
要阅读Scanner
的文件,最简单的方法可能是construct it using a File
object ...
Scanner reader = new Scanner(new File("wins.txt"))
您需要对代码进行一些其他更改才能使其从此处开始工作,但这应该涵盖主要问题。