2010-11-01 3 views
0

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

ответ

1

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

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

0

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^