0
Javaで書かれたプロジェクトコードの一部に固執しています。問題は、次のメソッドが呼び出されるたびに次のとおりです。DataInputStream.readUTFを使用してStringを読み取ったときのjava.io.EOFException
public static void printData(File f,int n){
try {
DataInputStream dis = new DataInputStream(new FileInputStream(f));
for (int i = 0; i < 5; i++) {
System.out.println(dis.readUTF());
}
dis.skipBytes(43*(n-10));
for (int i = 0; i < 5; i++) {
System.out.println(dis.readUTF());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
それが再び読み取ろうとする際にコードがEOFExceptionでは私は特定のバイト数をスキップしようとするたびに投げ、言い換えれば、プログラムが停止押しつぶす
2番目のFORループ(最初のものはうまく動作します)が、skipBytesメソッドに関連しているようです...しかし、これを引き起こしているのは明確にはわかりません。どんな小さな助けも歓迎です。
ちなみに、43は各行のバイト数で、n(2^9)はfで書かれた行数です。
でそれらをスキップ:それは、EOFExceptionでは場合にスローされますか?それは静的な値ですか、それとも他のコードによって決定されていますか? – Sasang
'43 *(n-10)'の値はどれくらいですか?あなたのファイルはどれくらいですか? –