我正在开发一个数据结构项目,似乎无法找出为什么会出现此异常。当我在 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/