Как прочитать все данные int из файла

#java

#java

Вопрос:

Я хочу прочитать все данные int из файла. Но я получаю только последнюю строку.

Содержимое файла:

1

2

3

Вывод:

3

Могу ли я получить все числа из файла?

     BufferedReader reader = new BufferedReader(new FileReader("C:\Users\...\P.txt"));

    String zeile;
    try {

        while ((zeile = reader.readLine()) != null) {
            String in = reader.readLine();
            if (in != null) {
                int zahl = Integer.parseInt(reader.readLine());
                System.out.println(zahl);

            }
        }
    } catch (IOException e) {
        e.printStackTrace();

    } finally {
        reader.close();
    }
 

Ответ №1:

Вы считываете три значения за один раз.

 while ((zeile = reader.readLine()) != null) { // first time. Read the 1
    String in = reader.readLine(); // second time. Read the 2
    if (in != null) {
        int zahl = Integer.parseInt(reader.readLine()); // third time. Read 3.
        System.out.println(zahl);

    }
}
 

Вам нужно читать только по одному за раз:

     while ((zeile = reader.readLine()) != null) {
            int zahl = Integer.parseInt(zeile);
            System.out.println(zahl);
    }
 

Комментарии:

1. Да, спасибо 🙂 🙂

Ответ №2:

Вы вызываете readLine 3 раза вместо одного, но используете его результат только один, у вас уже есть строка в zeile переменной. Также вы можете использовать try-with-ressource , чтобы избежать finally шага

 try (BufferedReader reader = new BufferedReader(new FileReader("C:\Users\...\P.txt"))) {
    String zeile;
    while ((zeile = reader.readLine()) != null) {
        int zahl = Integer.parseInt(zeile);
        System.out.println(zahl);
    }
} catch (IOException e) {
    e.printStackTrace();
}
 

Комментарии:

1. Спасибо, азро 🙂