Я хотел бы очистить первую строку текстового файла в Java.Этот файл составляет несколько гигабайт, и я не хочу делать копию.Используя предложение из этого поста , я пытаюсь сделать это, используя RandomAccessFile, однако он пишет слишком много.
Вот мой код:
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
В этом примере в большинстве редакторовфайл правильно начинается с 24 пробелов, но 48 символов (включая переводы строк) были заменены.Вставив сюда, я вижу странные знаки вопроса.Замена двойного размера заставляет меня думать, что что-то, связанное с кодированием, портится, но я пытался написать writeUTF с теми же результатами.