Файл ввода читает только последние несколько строк из входного файла - PullRequest
0 голосов
/ 06 января 2019

Это простой код для чтения всего содержимого из файла .txt. Не совсем уверен, в чем проблема. Я попытался с другим тестовым файлом, и он читал только line2 и line4, а затем null. Он не должен даже читать null согласно условию цикла while.

import java.io.*;
import java.util.*;

public class FileInput {

    public ArrayList<String> readFile() {
        ArrayList<String> content = new ArrayList<>();

        try {
            File file = new File("input.txt");
            BufferedReader br = new BufferedReader(new FileReader(file)); 

            String line = null;

            while (br.readLine() != null) {
                line = br.readLine();
                content.add(line);
                System.out.println(line);
            }

        } catch (FileNotFoundException e) {
            System.out.println("File could not be found. " + e.getMessage());
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }

        return content;
    }

    public static void main(String []args) {

        FileInput fi = new FileInput();
        fi.readFile();

    }   

}

input.txt

Дангал / Аамир Хан / Фатима Сана
Санджу / Ранбир Капур / Диа Мирза
ПК / Амир Хан / Анушка Шарма
Munna Bhai MBBS / Санджай Датт / Аршад Варси
Зиндаги на Милеги Добара / Фархан Ахтар / Катрина Кайф

выход:

Санджу / Ранбир Капур / Диа Мирза
Munna Bhai MBBS / Санджай Датт / Аршад Варси
нуль

Я что-то делаю неправильно или я где-то допустил небольшую ошибку?

1 Ответ

0 голосов
/ 06 января 2019

Вы звоните br.readLine() дважды, что заставляет вас пропустить несколько строк при чтении файла в while-loop.

Измените время на следующее: -

while ((line = br.readLine()) != null) {
   content.add(line);
   System.out.println(line);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...