我想用Java刪除文本文件的第一行。這個文件是幾千兆字節,我不想做一個副本。使用this post的建議,我正在嘗試使用RandomAccessFile,但是它寫得太多了。如何替換Java中的大文件的第一行?
這裏是我的代碼:
RandomAccessFile raInputFile = new RandomAccessFile(inputFile, "rw");
origHeaderRow = raInputFile.readLine();
raInputFile.seek(0);
raInputFile.writeChars(Strings.repeat(" ",origHeaderRow.length()));
raInputFile.close();
如果你想要一些樣品的輸入和輸出,這裏是發生了什麼:
前:
first_name,last_name,age
Doug,Funny,10
Skeeter,Valentine,9
Patti,Mayonnaise,11
Doug,AlsoFunny,10
後:
alentine,9
Patti,Mayonnaise,11
Doug,AlsoFunny,10
In在這個例子中,在大多數編輯器中,文件正確地以24個空格開始,但是48個字符(包括換行符)已被替換。粘貼到這裏後,我看到奇怪的問號事物。雙倍大小的替換使我的事情涉及編碼越來越亂了,但我試着用相同的結果writeUTF。
耶使用我的名字! –
就這麼你知道,用現代文件系統編輯文件是不可能的。總是有一個新的副本。 – toto2
該文件的編碼是什麼? 1521? UTF8? UCS2? –