3.3k Aufrufe
Gefragt in Anwendungen(Java,C++...) von
Hallo Liebe Gemeinde!
Ich habe folgendes Problem:

Ich muss eine Text-Datei einlesen und Zeilenweise verarbeiten.
Da bestimmte Informationen nur in geraden und ander wichtige Informationen nur in ungeraden Zeilen vorkommen, wollte ich den
LineNumberReader verwenden. Dieser gibt laut Java Doku mit der Methode getLineNumber() die Zeilennummer der aktuellen Zeile zurück und liest mit readLine() eine Zeile in einen String ein.

Zum Problem: warum liest der reader bei folgenden code nur ungerade Zeilen und überspringt immer die geraden:


public static void test(){
int Line;
LineNumberReader reader = null;

try{
reader = new LineNumberReader(new BufferedReader(new FileReader("C:/Test.txt")));
while(reader.readLine() != null){
Line = reader.getLineNumber();
String text = reader.readLine();
System.out.print(Line);
System.out.println(text);
}
}
catch(Exception e){}
finally{ try{ reader.close();} catch (Exception e){}}
}


Vielen Dank und schöne Grüße aus Bayern
Michi

2 Antworten

0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
du liest sowohl im Kopf der while-Schleife als auch innerhalb der Schleife selbst mit reader.readLine() eine Zeile aus der Datei, wobei allerdings nur das Ergebnis des letzteren Aufrufs ausgegeben wird.
0 Punkte
Beantwortet von
Danke für die schnell Antwort und die Lösung!!!!!!!

Da wär ich nicht drauf gekommen!
...