2016-03-25 12 views
0

データ構造体プロジェクトで作業中で、なぜこの例外が発生するのかわからないようです。 Eclipseでプロジェクトを実行すると、これはエラーです。スレッド内のJava例外EOFException

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を見つけることができないという意味ですか?それが格納されているURLを見つけることができない場合、私は本当に考えることができる唯一の事はある

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); 
    ... 
    } 
} 

:ライン75の周り

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); 
    ... 
    } 
} 

Releventコード:行25の周りに関連するコードを見てみると

何らかの理由で、または私がそこに例外を追加したことを登録していない場合。この問題をトラブルシューティングするために私が何をすることができるかについてのアイデアはありますか?

答えて

1

EOFは、ファイルの終わりを意味します。あなたのプログラムは、ファイルの最後を越えて読み込もうとします。これは、ファイルが切り捨てられているか、短すぎるか、破損しているか、BTreeコードの読み取りまたは書き込みにバグがあることを意味します。

0

これは、ファイルの終わりを達成し、さらに読むことを試みることを意味します。

関連する問題