Hallo Leute!
Gibt es eine Möglichkeit die erste Zeile einer Datei zu löschen, ohne die komplette Datei in den Arbeitsspeicher reinzuhauen? Es handelt sich hier um einfache CSV-Dateien, jedoch sind einige mehrere hundert MB gross.
Meine jetzige Version ersetzt die erste Zeile mit Leerzeichen/Spaces, habe es mit ASCII-Zeichen für DELETE oder BACKSPACE probiert, jedoch bekomme ich dann diese null-byte zeichen :-(
Gibt es eine Möglichkeit die erste Zeile einer Datei zu löschen, ohne die komplette Datei in den Arbeitsspeicher reinzuhauen? Es handelt sich hier um einfache CSV-Dateien, jedoch sind einige mehrere hundert MB gross.
Meine jetzige Version ersetzt die erste Zeile mit Leerzeichen/Spaces, habe es mit ASCII-Zeichen für DELETE oder BACKSPACE probiert, jedoch bekomme ich dann diese null-byte zeichen :-(
Code:
import java.io.*;
class removeFirstLine{
public static void main (String[] args){
try {
File f = new File("c:\\progra~1\\java\\jdk\\csv\\myfile2.txt"); //File anpassen
RandomAccessFile raf = new RandomAccessFile(f, "rw");
String line = raf.readLine();
long fpos;
long i_end = raf.getFilePointer(); //zeiger automatisch -> letzte position von zeile 1
for (fpos=0;fpos<(i_end)-1;fpos++){
raf.seek(fpos);
raf.writeChars(" "); //Füllt mit Spaces
}
raf.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}