我想从一个包含整数的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)
}
2条答案
按热度按时间wgx48brx1#
当
RandomAccessFile
到达文件的结尾,.nextInt()
不会再回来了-1
,它会抛出一个EOFException
. 因此,你应该这样做:gt0wga4j2#
readInt()
和“1整数一行”不匹配。或者您有一个二进制文件,其中包含可以使用
readInt()
(对于一个整数,它总是读取四个字节),或者您有几行文本,其中每行包含一个可读的整数值表示(这似乎是您的情况)。要读取包含整数值的文本行,必须按以下方式重写代码: