In Java eine TXT Datei auslesen?

2 Antworten

Zum Beispiel so:

int counter = 2;
String[] lastLines = {"",""};
while ((sCurrentLine = readbuffer.readLine()) != null) {
	lastLines[(counter%2)] = sCurrentLine;
	counter++;
}

Welches die letzte und vorletzte Zeile ist, erkennt man nur über den Counter.

(counter-1)%2 ergibt den Standort der letzten Zeile
counter%2 den Standort der vorletzten Zeile.

Yesyes00 
Beitragsersteller
 18.12.2021, 15:53

Machts irgendwie nicht

    FileReader readfile = new FileReader("C:\\***.txt");
    BufferedReader readbuffer = new BufferedReader(readfile);

    int counter = 2;
    String[] lastLines = {"",""};
    String sCurrentLine;
    while ((sCurrentLine = readbuffer.readLine()) != null) {
        lastLines[(counter%2)] = sCurrentLine;
        counter++;
    }

System.out.println(sCurrentLine);

Bei sCurrentLine kommt null raus

Bei lastLines [Ljava.lang.String;@4c873330

GuteAntwort2021  19.12.2021, 00:51
@Yesyes00

Dann probiere statt

System.out.println(sCurrentLine);

doch einfach mal

System.out.println("Vorletzte Zeile: " + lastLines[(counter)%2] + "");
System.out.println("Letzte Zeile: " + lastLines[(counter-1)%2] + "");

lastLines ist ein array. Wenn du einfach nur System.out.println(lastLines) hinschreibst, wird er dir den Pointer des Arrays ausgeben.

Und sCurrentLine ist natürlich null an der Stelle, an der du es ausgibst. Sonst wäre er ja noch in der Schleife aktiv, da dies die Abbruchbedingung ist. Die Schleife wird abgebrochen, so bald sCurrentLine == null ist.

Hey,

du kannst Files.readAllLines() nutzen, um dir alle Zeilen einer Datei auszulesen und als List<String> zurückzubekommen.

Mfg Jannick (L1nd)

Woher ich das weiß:eigene Erfahrung – Aktuelles Studium in angewandter Informatik

Yesyes00 
Beitragsersteller
 18.12.2021, 15:28

Brauche aber nur die letzten 2 in eigene Variablen