Алгоритм Zip использует уже распакованный контент в качестве справочной таблицы для следующего контента. Я считаю, что это напрямую означает, что если вы удаляете первую строку, это определенно требует повторного сжатия остальной части файла, что, в свою очередь, подразумевает необходимость сначала распаковать его.
Поэтому я считаю, что ответ: не .
Рассматривая детали реализации алгоритма zip (точнее, алгоритма сжатия Lempel Ziv), вы обнаружите, что существуют данные windows определенных размеров.
Максимальная длина поступающих данных который может быть распакован, определяется размером окна «впереди». Существует также максимальное расстояние, на котором данные могут использоваться для поиска среди уже распакованных данных, - «заднее» окно.
Следовательно, может быть возможно распаковать только часть сжатых данных, достаточно большую, чтобы убедиться, что остальные сжатые данные не ссылаются ни на что до этого. Т.е. настолько велик, что с определенной точки в сжатых данных больше нет ссылок на то, что вы собираетесь удалить. Затем вы можете повторно сжать эту часть без первой строки, от которой хотите избавиться.
Однако я полагаю, что этот подход вне вашего вопроса. В противном случае вы бы предоставили гораздо больше информации.
Так что я думаю, что я останусь с: Нет.
Или, по крайней мере:
Вам придется по-настоящему изучить алгоритм Zip до такой степени, что вы сможете сами его реализовать. Затем узнайте еще больше о точной реализации алгоритма в файле, с которым вы имеете дело. Затем узнайте о точной конфигурации компрессии, которую вы смотрите (размеры двух windows).
Затем потратьте много усилий.
Рассмотрим детали того, насколько точно это сделать. за ответом здесь.