Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum?

sharlatan

Mitglied
Guten Morgen 🙂

sitze grade an einem Programm welches eine Textdatei einlesen, die verschiedenen wörter die vorkommen zählen und hinterher auch ausgeben können soll.

Mein Problem jetzt ist das ich bei einer Methode die das einlesen betrifft nicht weiter weiß. eigentlich sollte der String >auslese< mit einer zeile nach der anderen durch die while schleife gefüllt werden.

hier die methode:


Java:
public String dateiLesen(){
		
		try{
			
			FileReader fr = new FileReader(file);
			BufferedReader br = new BufferedReader(fr);
			
			String line = null;
			
            while((line = br.readLine()) != null){
            	auslese += br.readLine();
            }
			

		    br.close();
			}
			
			catch(IOException e){
				System.out.println(e.getMessage());		
			}
		
		
		return auslese;
	}

wie gesagt, ausgegeben wird lediglich die letzte zeile der textdatei....
 
versuch mal statt
Java:
auslese += br.readLine();
folgendes
Java:
auslese += line;

Warum? Du initialisiert zwar korrekt eine Variable line, ignorierst die aber und lest in der Schleife erneut ein. Somit müsstest du die erste Zeile in line haben, die zweite in deinem String, die dritte in line, die vierte wieder in deinem String, ...
 
Du weist line die nächste Zeile zu, benutzt diese allerdings nie.
Du schießt also immer eine Zeile ins Nichts, da du nur jede zweite Zeile an auslese anhängst.
Das was du in Gedanken hast, war sowas wie hasNext(), allerdings wird nach readLine der Pointer zur nächsten Zeile gesetzt.

du solltest
Code:
auslese += line;
sagen, statt erneut
Code:
readLine()

Java:
 String line = null;
            
            while((line = br.readLine()) != null){
                auslese += br.readLine();
            }
 
Zuletzt bearbeitet:

Zurück
Oben