Чтение таблицы из текстового файла в 2darray

У меня есть код Java, в котором я читаю текстовый файл, а затем повторяю его, чтобы заполнить его двумерным массивом. после того, как я прочитал файл, я смог распечатать его содержимое, поэтому я был уверен, что файл прочитан. и я также был уверен, что метод .hasNextLine библиотеки bufferedreader показывает true, когда строка была найдена. но когда я использовал его в цикле while, он просто действовал так, как будто строки не были найдены, поэтому он не повторялся, поэтому я не мог знать, сколько строк у меня было в таблице.==>

      
while (sc.hasNextLine()==true){ row++;}

кроме того, когда я жестко запрограммировал количество строк, чтобы проверить, все ли в порядке, я получил ошибку «строка не найдена». Пожалуйста, помогите мне. я свяжу код ниже.

      
    package com.company;
    import java.io.BufferedReader;
   import java.io.FileReader;
   import java.util.Arrays;
   import java.util.Scanner;
   public class Main {

        public static void 
    main(String args[]) throws Exception {
        int row=0;
        int column=0;
        int count=0;

        BufferedReader x = new BufferedReader(new FileReader("src\\Table.txt"));
        Scanner sc = new Scanner(x);
        System.out.println(sc.nextLine()+sc.hasNextLine()+"\n"+sc.nextLine()+sc.hasNext()+"\n"+sc.nextLine()+"\n"+sc.nextLine()+sc.hasNextLine());

        while (sc.hasNextLine()==true){ row++;}
        System.out.println(row);
        for (int i=0; i<row; i++) {
            String[] line = sc.nextLine().trim().split(",");
            System.out.println(line);
            for (String line1 : line) {
                if (",".equals(line1)) {
                    count++;
                }
                count+=1;
                if(count>column){
                    column=count;
                }
            }
        }
        String [][] myArray = new String[row][column];


        for (int i=0; i<myArray.length; i++) {
            String[] line = sc.nextLine().trim().split(",");
            for (int j=0; j<line.length; j++) {
                myArray[i][j]= line[j];
            }
        }

        System.out.println(Arrays.deepToString(myArray));
    }
}

я также получаю этот вывод

      "C:\Program Files\Java\jdk-12.0.1\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3.2\lib\idea_rt.jar=52205:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\acer pc\IdeaProjects\PDM\out\production\PDM" com.company.Main
CalculusII,Algebra,Networktrue
CalculusII,Algebra,Webtrue
CalculusIII,Prog2,Network
Algebra,Prog1,Webfalse
0
[]

Process finished with exit code 0

0 ответов

Другие вопросы по тегам