Считать график из файла и преобразовать в массив Java - PullRequest
0 голосов
/ 20 марта 2019

Мне нужно прочитать матрицу графа из txt файла. Например

4
0 1 1 0 
1 0 1 0 
1 1 0 1 
0 0 1 0

Это входной файл. Первое число - количество вершин. Я пробовал что-то вроде этого:

Scanner sc = new Scanner(file.getAbsolutePath());
int n = sc.nextInt();
int [][] graph = new int [n][n];
for (int x =0; x<n; x++)
    for (int y=0; y<n;y++)
        graph[x][y] = sc.nextInt();

Но я получаю InputMismatchException. Я знаю, что это значит, но я не понимаю, что не так. Файл содержит символы типа int, и я использую nextInt(); Какие-либо предложения? Может быть, проще преобразовать матрицу в массив? Спасибо за совет.

1 Ответ

0 голосов
/ 20 марта 2019

Вы используете неправильный конструктор для Scanner.Вы используете это: https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner(java.lang.String),, который создает Scanner, в котором строка является входным потоком.

Измените конструктор на new Scanner(new FileReader(file.getAbsolutePath())).

...