Вы инженер?Это хороший пример некоторой простой задачи, решаемой с помощью прекрасно работающего, но слишком сложного решения.
Если содержимое, которое вы вводите, занимает ровно столько байт, сколько вынимаете содержимое,запись «в» файле фактически приведет к тому, что вся следующая часть после вашей позиции записи будет перезаписана на диск. Добавить намного дешевле .
Переименование файла для хранения указателя работает - но это не очень элегантно и делает вещи более сложными (например, вашему процессу нужны права на запись в каталог, в котором находится файл -иначе достаточно просто записать доступ к двум файлам)
Если только место на диске не является проблемой (и на самом деле это редко бывает), ваш подход менее эффективен, чем, скажем, добавление всего в файл и поворотфайл, когда он достигает своего максимального размера .Таким образом, у вас всегда есть последние 3 МБ доступных журналов, и максимум 3 МБ больше в вашем текущем файле.Это также значительно упростит синтаксический анализ файла, вместо пересчета всей позиции указателя.
Обновление для ответа на ваш комментарий:
Переименование файла каждую минуту (или даже каждую секунду) не должен значительно замедлять работу вашей системы , не беспокойтесь об этом.
В основном мы обеспокоены тем, "почему вы думаете, что вам нужно переименовать файл".Технически это не лучше, это не лучше с логической точки зрения, оно усложняет многие другие (будущие) задачи.Вы можете сохранить указатель файла в отдельном файле или в конце файла, и есть более простые решения, которые вообще не требуют указателя файла.