gpt4 book ai didi

java - 用 Java 读取随机访问文件

转载 作者:行者123 更新时间:2023-11-30 03:42:15 25 4
gpt4 key购买 nike

我正在尝试设置一个 while 循环,该循环将从 RandomAccessFile 中读取并在到达文件末尾时停止。但每次我尝试运行该程序时都会出现错误。

RandomAccessFile raf = new RandomAccessFile(filename, "rw");
final int EOF = -1;

while(raf.readInt() != EOF){

id = raf.readInt();
existingMileage = raf.readInt();
gasCost = raf.readInt();
ndays = raf.readInt();
rate = raf.readInt();
totalCharge = raf.readInt();
discount = raf.readInt();
tax = raf.readInt();
netCharge = raf.readInt();
returnMileage = raf.readInt();

}

这是我收到的错误:

Exception in thread "main" java.io.EOFException
at java.io.RandomAccessFile.readInt(Unknown Source)
at TakeHome.TakeHome.fileReaderMethod(TakeHome.java:127)
at TakeHome.TakeHome.main(TakeHome.java:20)

最佳答案

 final int EOF = -1;

这是你编的。它不在 Javadoc 中。 readInt() 方法在文件末尾不会返回 -1。不可以。 -1 是带内值。它会抛出您所得到的 EOFException

您还丢弃了在 EOF 测试中读取的 int,因此您比应有的时间更早到达了文件末尾。

您应该循环while (true),捕获EOFException,并在捕获它时中断。

关于java - 用 Java 读取随机访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26578150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com