无法从RandomAccessFile Java获得正确的输出

时间:2018-09-10 11:23:45

标签: java system.out 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 个答案:

答案 0 :(得分: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);