Не получается правильный вывод из java RandomAccessFile - PullRequest
0 голосов
/ 10 сентября 2018

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

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 Ответ

0 голосов
/ 10 сентября 2018

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

System.out.println(s);

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

String lastLine = null;
while ((s = item.readLine()) != null) {
    System.out.println(s);
    lastLine = s;
}
System.out.println(lastLine);
...