Я хотел бы очистить первую строку текстового файла на 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 символов (включая символы новой строки) были заменены. После вставки здесь я вижу странные вещи со знаком вопроса. Замена двойного размера заставляет меня задуматься о том, что что-то, связанное с кодированием, сбивается, но я попытался написатьUTF с теми же результатами.