Всегда проверяйте, если ваш сканер hasNext()
токен, а затем рассмотрите возможность вызова next()
.Попробуйте это:
Я исправил некоторые ошибки, мой компилятор жаловался на исключение, которое вас не перехватило.Наконец закройте сканер в блоке finally (или в ваших попытках с ресурсами).
public static void main(String[] args) {
// instantiate input file
File file = new java.io.File("file.txt");
Scanner scanner = null;
// instantiate scanner to read file
try {
scanner = new Scanner(file);
// instantiate array
String[][] array = new String[20][45];
// instantiate counter
int counter = 1;
// loop to read file and assign a character to each array element
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println("Row: " + i + ", column: " + j + ", counter = " + counter++);
if (scanner.hasNext()) {
array[i][j] = scanner.next();
}
} // end inner for loop
} // end outer for loop
} catch(FileNotFoundException e) {
System.err.println("There is no such file");
}finally{
scanner.close();
}
}
Редактировать
Вывод:
Row: 0, column: 0, counter = 1
Row: 0, column: 1, counter = 2
Row: 0, column: 2, counter = 3
Row: 0, column: 3, counter = 4
Row: 0, column: 4, counter = 5
Row: 0, column: 5, counter = 6
Row: 0, column: 6, counter = 7
Row: 0, column: 7, counter = 8
Row: 0, column: 8, counter = 9
Row: 0, column: 9, counter = 10
Row: 0, column: 10, counter = 11
Row: 0, column: 11, counter = 12
...