Не получается правильный вывод из java RandomAccessFile

Итак, вот код, который я запустил.

import java.io.*;
public class SETBQ1 {
  public static void main(String[] args) throws Exception {
    RandomAccessFile item = new RandomAccessFile("item.dat", "rw");
    String s;
    while ((s = item.readLine()) != null) {
      System.out.println(s);
    }
    System.out.println(s);
    item.close();
  }
}

Кстати, содержимое item.dat

1 pencil 100 10
2 pen 200 5
3 eraser 5 1000
4 book 500 12

Тем не менее, я получаю вывод

PS F:\tymalik\Malik\SEM 1\JAVA\ASS5> java SETBQ1
1 pencil 100 10
2 pen 200 5
3 eraser 5 1000
4 book 500 12
null

Я хотел бы знать, почему это последнее значение печатает ноль вместо значения? и каково было бы решение для обработки строковой переменной вне цикла while? Я был бы признателен за любую помощь в этом.

1 ответ

Последнее утверждение

System.out.println(s);

дисплеи null так как это выходит за рамки while петля. Вместо этого вы можете назначить другую переменную в цикле

String lastLine = null;
while ((s = item.readLine()) != null) {
    System.out.println(s);
    lastLine = s;
}
System.out.println(lastLine);
Другие вопросы по тегам