java—读取randomaccessfile的所有值(int)

plicqrtu  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(280)

我想从一个包含整数的randomaccessfile中读取所有信息,每行1个整数。我的“阅读”代码似乎有问题。文件内容:

1
3
5
72
0

我当前的代码给了我一个eofexception错误,我接收的数据不正确,例如1被打印为857222等输出:

822751754
856306698
805975306
856306186
java.io.EOFException
822751754

while((tmp = randomFile.readInt()) != -1){
  System.out.println(tmp)
}
wgx48brx

wgx48brx1#

RandomAccessFile 到达文件的结尾, .nextInt() 不会再回来了 -1 ,它会抛出一个 EOFException . 因此,你应该这样做:

while(true){
   try{
      tmp = randomFile.readInt()
      System.out.println(tmp)
   }catch(EOFException e){
      break;
   }
}
gt0wga4j

gt0wga4j2#

readInt() 和“1整数一行”不匹配。
或者您有一个二进制文件,其中包含可以使用 readInt() (对于一个整数,它总是读取四个字节),或者您有几行文本,其中每行包含一个可读的整数值表示(这似乎是您的情况)。
要读取包含整数值的文本行,必须按以下方式重写代码:

String line;
while ((line = randomFile.readLine()) != null) {
    int tmp = Integer.parseInt(line);
    System.out.println(tmp);
}

相关问题