当程序到达list[counter] = fi.nextInt();
为什么时,程序会跳出该方法?
Scores.txt目前包含“0 0 0 0 0 0 0 0 0 0”,由于某种原因,每次程序运行时都会将其擦除。控制台中没有例外,我正在使用eclipse。
代码:
int[] getValues() throws Exception{
Scanner fi = new Scanner(new File("./src/oppgave_2_v2/Scores.txt"));
int[] list = new int[10];
for(int counter = 0; counter < list.length; counter++){
list[counter] = fi.nextInt();
}
fi.close();
return list;
}
答案 0 :(得分:0)
您可能没有从int
方法获得nextInt()
,因此它会抛出异常。打印堆栈跟踪以查看发生的情况。如果Scanner
正在从文件中看到String标记,则只需转换为Integer.valueOf(fi.next());
的int。实际上,您应该在实际执行int
之前检查hasNextInt()
是否有nextInt()
。
答案 1 :(得分:0)
类型nextXXX()的方法假设字符串中的下一个字符是XXX类型。如果您尝试nextInt()并且第一个字符是字母p -_-
,它不会给您任何异常但只有异常答案 2 :(得分:0)
我发现了问题,如果有人有兴趣,我可以发布解决方案。