线程中的 Java 异常 EOFException

标签 java database exception eofexception

我正在开发一个数据结构项目,似乎无法找出为什么会出现此异常。当我在 eclipse 中运行我的项目时,这是它给出的错误。

Exception in thread "main" java.io.EOFException
    at java.io.RandomAccessFile.readInt(RandomAccessFile.java:803)
    at java.io.RandomAccessFile.readLong(RandomAccessFile.java:836)
    at project_test.BTree.<init>(myClassB.java:75)
    at project_test.URLTestBNode.main(myClassA.java:25)

这是否仅仅意味着它无法找到我提供的 URL?

查看第 25 行左右的相关代码:

public class myClassA {
20) public static void main(String[] args) throws FileNotFoundException, IOException, URISyntaxException {
    21) URL url1 = new URL("The first URL");
    22) URL url2 = new URL("The second URL");
    23) RandomAccessFile rf1 = new RandomAccessFile(url1.toString().replace("/",""),"rw");
    24) RandomAccessFile rf2 = new RandomAccessFile(url2.toString().replace("/",""),"rw");
    25) BTree tree1 = new BTree(rf1, 64); //Error this line
    26) BTree tree2 = new BTree(rf2, 64);
    ...
    }
}

第75行左右的相关代码:

public class myClassB{
69) public myClassB(RandomAccessFile f, int k) throws IOException, FileNotFoundException{

    71) file = f;
    72) file.seek(0);

    73) byte[] url = new byte[256];
    74) file.read(url);

    75) long rootIndex = file.readLong(); //This line
    76) file.seek(rootIndex);
    ...
    }
}

我真正能想到的唯一一件事是它是否由于某种原因找不到存储的 URL,或者如果它没有注册我在那里添加了异常。关于如何解决此问题有什么想法吗?

最佳答案

EOF 表示文件结束。您的程序尝试读取超出文件末尾的内容。这意味着文件被截断、太短、损坏,或者 BTree 读取或写入代码中存在错误。

关于线程中的 Java 异常 EOFException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36224195/

相关文章:

java - 如何从虚拟机调用 native 函数?

php - 如何在wordpress中的the_content()上实现网格系统

javascript - 获取哪个函数/行在 javascript 中抛出异常

java - 在 Spring Webflux 中添加的多个 cookie 未合并到单个 HTTP header 中

java - Spring Maven 从资源文件夹中读取

java - 如何让 JButton 进入与图像相同的窗口?

sql - Oracle:如何在午夜之前选择当前日期(今天)?

asp.net - ASP.Net 的首选数据库连接

python 上下文管理器不传递异常

java - Java中的异常线程中的异常 "AWT-EventQueue-0"java.lang.NullPointerException