In Java eine TXT Datei auslesen?
Habe eine TXT Datei, die ungefähr so aufgebaut ist:
14
b
16
a
19
b
20
b
und so einen Code:
String text = "";
int lineNumber;
try {
FileReader readfile = new FileReader("C:\\Users\\****.txt");
BufferedReader readbuffer = new BufferedReader(readfile);
for (lineNumber = 1; lineNumber < 10; lineNumber++) {
if (lineNumber == 7) {
text = readbuffer.readLine();
} else
readbuffer.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
Ich möchte aber nicht die gleiche Zeile immer auslesen, wie hier die 7. Zeile sondern immer die unterste Zeile also die letzte Zeile und die vorletzte Zeile, da sich die Datei immer ändert und immer neue Zeilen dazu kommen.
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.
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)
Machts irgendwie nicht
Bei sCurrentLine kommt null raus
Bei lastLines [Ljava.lang.String;@4c873330