РЕДАКТИРОВАТЬ: Вы только что обновили свое сообщение, добавив в него пример входного файла, поэтому следующее не будет работать как есть для вашего случая. Однако принцип тот же: токенизируйте строку, которую вы прочитали, на основе того, какой разделитель вы хотите (пробелы в вашем случае), а затем добавьте каждый токен в столбцы строки.
Вы не включили пример входного файла, поэтому я сделаю несколько основных предположений.
Предполагая, что первая строка вашего входного файла - "n", а остальные - n x n целых чисел, которые вы хотите прочитать, вам нужно сделать что-то вроде следующего:
public static int[][] parseInput(final String fileName) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
int n = Integer.parseInt(reader.readLine());
int[][] result = new int[n][n];
String line;
int i = 0;
while ((line = reader.readLine()) != null) {
String[] tokens = line.split("\\s");
for (int j = 0; j < n; j++) {
result[i][j] = Integer.parseInt(tokens[j]);
}
i++;
}
return result;
}
В этом случае пример входного файла будет:
3
1 2 3
4 5 6
7 8 9
, что приведет к массиву 3 x 3 с:
row 1 = { 1, 2, 3 }
row 2 = { 4, 5, 6 }
row 3 = { 7, 8, 9 }
Если ваш входной файл не имеет "n" в качестве первой строки, то вы можете просто подождать, чтобы инициализировать ваш окончательный массив, пока не подсчитаете токены в первой строке.