这是我第一次使用Java进行i / o操作,并且我正在尝试进行一项练习,告诉我要执行以下操作:
你有一个文件“scores.txt”,它有n + 1行,第一行的数字是n。在另外的行上有一个ID号和一个分数,用空格(“”)分隔。
创建一个方法( public static void hackScores(String myID); ),该方法读取和写入文件,除了与您的ID号相关联的分数外,所有内容都相同。只有当分数低于10时,才应将其设置为10.(这是唯一可以更改文件的内容)。
这是输入/输出示例:
这是一个i / o示例(格式不正确,因为它被识别为代码,不会让我提交。)
input:
3
000123 15
000124 18
000125 9
______________________________________
Argument for the hackScores function:
000125
______________________________________
output:
3
000123 15
000124 18
000125 10
这是我尝试过的:
import java.util.Scanner;
import java.io.FileWriter;
import java.io.IOException;
public class Scores
{
public static void hackScores(String myID)
{
try
{
Scanner sc = new Scanner("scores.txt");
int n = sc.nextInt();
FileWriter w = new FileWriter("scores.txt");
for(int i = 0; i < n; i++)
{
int idnumber = sc.nextInt();
int score = sc.nextInt();
if(idnumber == Integer.parseInt(myID))
{
if(score < 10)
{
score = 10;
}
}
w.write(idnumber + " " + score);
}
w.close();
sc.close();
}
catch(IOException ex)
{
System.out.println("Something went wrong while creating the new textfile");
}
}
}
不幸的是,在使用本练习附带的单元测试测试此类时,它会告诉我以下内容:
没有异常消息
java.util.InputMismatchException
at ...
我做错了什么?
(顺便说一句,我原来的代码里面有一些荷兰语,所以我决定将它翻译成英文,以方便你。我可以发布单元测试,如果它有用,但它会有荷兰文在它和类和方法(以及其他东西)将有不同的名称)