我想用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? –