Сдвинуть файл во время записи? - PullRequest
0 голосов
/ 01 ноября 2010

Можно ли переместить содержимое файла во время записи в него с помощью FileWriter?
Мне нужно записать константы данных в заголовок файла, и если я это сделаю, он перезапишет файл.
Какой методя должен использовать для этого или мне нужно делать копии файла (с новыми данными сверху) при каждой записи файла?

Ответы [ 2 ]

1 голос
/ 01 ноября 2010

Если вы хотите перезаписать определенные байты файла, а не другие, вы можете использовать для этого поиск и запись. Если вы хотите изменить содержимое каждого байта в файле (например, добавив один байт в начало файла), то вам нужно написать новый файл и, возможно, переименовать его после того, как вы его закончили.

Подумайте над ответом на вопрос «каким будет содержимое байта со смещением x после того, как я закончу?». Если для большого процента возможных значений x ответ «не то, что раньше», то вам нужен новый файл.

0 голосов
/ 20 апреля 2012

Вместо того, чтобы бороться с вопросом «каким будет содержимое байта со смещением x после того, как я закончу?», Давайте изменим образ мыслей и спросим, ​​почему файловая система или, возможно, прошивка жесткого диска не делают : a) обеспечить другой режим доступа к файлу [скажем, встроенный] b) увеличить длину файла на количество байтов, добавленных вперед или в середине или даже в конце c) переместить каждый байт, который начинается с пересечение по позициям newcontent.length

Было бы проще и быстрее обрабатывать эти операции на уровне встроенного программного обеспечения диска или файловой системы, а не оставлять эту работу разработчику приложения. Я надеюсь, что разработчики файловых систем или производители жестких дисков вскоре предложат такую ​​функцию.

С уважением, Samba

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...