Löschen der letzten Zeile einer Datei mit Java

8

Ich habe eine .txt Datei, die ich in Java verarbeiten möchte. Ich möchte die letzte Zeile löschen.

Ich brauche Ideen, wie ich das erreichen kann, ohne den gesamten Inhalt in eine andere Datei kopieren und die letzte Zeile ignorieren zu müssen. Irgendwelche Vorschläge?

    
Sergiu 05.02.2012, 13:32
quelle

2 Antworten

9

Sie können den Anfang der letzten Zeile finden, indem Sie die Datei scannen und sie dann mit FileChannel.truncate oder RandomAccessFile.setLength .

    
MForster 05.02.2012, 13:40
quelle
1

Mit RandomAccessFile können Sie:

  • Verwenden Sie die Methode seek (long) , um nach vorne zu springen und diese Zeilen zu lesen. Aber Sie werden nicht genau wissen, wie groß der Sprung sein sollte.
  • Um die letzten Zeilen zu löschen, benötigen Sie die Position des Beginns der letzten Zeile. Speichern Sie daher vor dem Lesen jeder Zeile ihre Position im Dateizeiger (Methode getFilePointer () ). An dieser Stelle löschen Sie setLength (long) .

Code wäre etwa so:

%Vor%     
Waldemar Wosiński 03.10.2012 12:01
quelle

Tags und Links