Нет, это принципиально то, что большинство файловых систем не поддерживают. (Возможно, некоторые из них имеют специальные структуры данных, чтобы сделать их дешевыми, но большинство из них - нет, а стандартные API не поддерживают идею.)
Самый простой способ «удалить» часть файла - скопировать просто бит, который вы хотите добавить к новому файлу. Если вы только удаляете биты ближе к концу, вы можете избежать повторного копирования его снова, но для этого потребуется более сложный код.
В случае потока объектов вам, вероятно, будет лучше всего просто прочитать объекты из одного потока и написать те, которые вы все еще хотите в новом. (Очевидно, что впоследствии вы можете переименовать выходной файл.) Возможно, что, посмотрев на формат сериализации, вы могли бы избежать некоторой обработки, необходимой для повторной десериализации/сериализации, но я бы пошел по простому маршруту, чтобы начать.
Перезапись с помощью «пробелов», скорее всего, приведет к нечитаемому/поврежденному потоку объектов. –