以下代码应从 .dat 文件中读取 5 个字符串,然后从每个字符串中打印每个单独的字符。
File file = new File("tictactoe.dat");
Scanner scan = new Scanner(file);
String str = "";
int x;
for ( x = 0; x < numGames; x++) {
str = scan.nextLine();
for (int i = 0; i < str.length(); i++) {
out.println(str.charAt(i));
}
}
但是程序会抛出一个StringIndexOutOfBoundsException
. 没有任何问题Scanner
,因为测试表明它可以很好地拾取我文件中的每一行。但是当试图获取并打印每个字符串中的某个字符时,程序会崩溃。
奇怪的是,循环之外的charAt()
工作没有错误。
为什么在循环中调用方法会导致程序崩溃?
更新:我在复制我使用的代码时犯了一些荒谬的错误。请参阅上面的更新代码。此外,程序“崩溃”是由于StringIndexOutOfBoundsException
我没有捕捉到的。