Вы забыли инициализировать массив , для его инициализации вы можете использовать
private static int []a = new int[100];
Будьте осторожны при работе с массивами фиксированного размера, потому что в этом конкретном случаеВ случае, если ваш файл содержит более 99 строк, ваша программа не будет выполнена. Цикл while будет пытаться выписать границы массива и выдаст исключение IndexOutOfBounds
.
- Если вы хотите использовать массивы динамического размера, которые будут увеличиваться автоматически при добавлении элемента, узнайте о ArrayLists .
Разница между встроенным массивом и ArrayList в Java заключается в том, что размер массива нельзя изменить (если вы хотите добавить или удалить элементы в / из массива, вы должны создатьновый). Хотя элементы можно добавлять и удалять из ArrayList в любое время.
Стоит отметить, что обычно при чтении из файла лучше использовать while цикл вместо for loop :
while ((line = r.readLine()) != null) {
a[i] = Integer.parseInt(reader.readLine());
i++;
}
Таким образом цикл завершится, когда BufferedReader
достигнет конца файла, как r.readLine()
метод вернет null
.