Заполнить DefaultTableModel из тестового файла - PullRequest
0 голосов
/ 30 мая 2020

У меня есть этот текстовый файл:

A
B
3.00

A
B
3.00

, и мое представление:

view

Я хочу сопоставить каждую строку с каждым столбцом (first_row- first_column, second_row-second_column, et c ..) Где я сделал ошибку? Мой код выглядит следующим образом:

    BufferedReader infile = new BufferedReader(reader);
        String line = "";
        int counter = 0;
        String title = "";
        String author = "";
        String price = "";
        try {
            while ((line  = infile.readLine()) != null) {
                ++counter;

                if (counter == 1) {
                    title = line;
                } else if (counter == 2) {
                    author = line;
                } else if (counter == 3) {
                    price = line;
                    SimpleBook sb = new SimpleBook(title, author, price);
                    bookList.add(sb);
                    counter = 0;
                }
            }
        } catch (IOException ex) {
            Logger.getLogger(SimpleBookList.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}

Ответы [ 2 ]

2 голосов
/ 30 мая 2020

вы можете сделать это, так как во входном файле есть пустая строка.

BufferedReader infile = new BufferedReader(reader);
    String line = "";
    int counter = 0;
    String title = "";
    String author = "";
    String price = "";
    try {
        while ((line  = infile.readLine()) != null) {
            if(line.isEmpty())
                  continue;

            ++counter;

            if (counter == 1) {
                title = line;
            } else if (counter == 2) {
                author = line;
            } else if (counter == 3) {
                price = line;
                SimpleBook sb = new SimpleBook(title, author, price);
                bookList.add(sb);
                counter = 0;
            }
        }
    } catch (IOException ex) {
        Logger.getLogger(SimpleBookList.class.getName()).log(Level.SEVERE, null, ex);
    }
0 голосов
/ 30 мая 2020

Ваш счетчик увеличивается в начале l oop, поэтому в операторе if у вас никогда не бывает 0, кроме 1. Затем пустая строка анализируется как 1 и переходит в столбец A. Вы можете решить эту проблему несколькими способами, например, пропустить пустые строки или увеличить счетчик, если строка не пуста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...