我不太确定这个错误,因为我无法弄清楚发生了什么。通过调试器,我可以看到文件已成功读取,但在最后一个索引上,我收到一个错误。谁知道为什么?
try {
txtin = new Scanner(gameFile);
//String line;
while(txtin.hasNext()) {
for(int i = 0; i < 15; i++) {
Grid[i] = txtin.next();
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
if (txtin != null)
txtin.close();
}
我得到的错误是:
Exception in thread "main" java.util.NoSuchElementException
我该如何解决这个问题?
答案 0 :(得分:0)
每次调用Iterator#next()
时,它都会向前移动基础光标。您在for循环中调用txtin.next()
15次。可能存在少于15个令牌并且光标到达没有这样的元素的地方因此NoSuchElementException
答案 1 :(得分:0)
替换
while(txtin.hasNext()) {
for(int i = 0; i < 15; i++) {
Grid[i] = txtin.next();
}
}
与
int i=0;
while(txtin.hasNext()) {
Grid[i++] = txtin.next();
}
由Gagan Chouhan描述的原因。