#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. Спасибо, азро 🙂