Ich stecke auf einen Teil eines Projekt-Code in Java geschrieben. Das Problem ist, jedes Mal, wenn die folgende Methode aufgerufen wird:java.io.EOFException bei der Verwendung von DataInputStream.readUTF zum Lesen von String
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();
}
}
der Code einer EOFException zermalmt warf jedes Mal, wenn ich versuche, eine bestimmte Anzahl von Bytes zu überspringen, in anderen Worten, das Programm stoppt, wenn es wieder zu lesen versucht, in die zweite FOR-Schleife (die erste funktioniert gut), aber es scheint, dass es mit der skipBytes-Methode zusammenhängt ... Aber ich sehe nicht klar, was das verursacht. Jede kleine Hilfe ist willkommen.
Übrigens ist 43 die Anzahl der Bytes jeder Zeile, und n (2^9) ist die Anzahl der in f geschriebenen Zeilen.
Wie anfangs Sie den Wert 'n' bekommen? Ist es ein statischer Wert oder wird er durch einen anderen Code bestimmt? – Sasang
Welchen Wert Gegner '43 * (n-10)' entsprechen? Wie groß ist deine Datei? –