3.6k Aufrufe
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
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
von
Danke für die schnell Antwort und die Lösung!!!!!!!

Da wär ich nicht drauf gekommen!

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...