2017-05-18 3 views
0

Ich bin mit Kompressionsalgorithmen nicht vertraut. Ist es möglich, mit zlib oder einer anderen Bibliothek nur den Anfang eines gzip-Streams zu dekomprimieren, zu modifizieren und neu zu komprimieren und ihn dann mit dem komprimierten Rest des Streams zu verketten? Dies würde in einem Fall geschehen, in dem ich zum Beispiel die ersten Bytes von Benutzerdaten (nicht die Header) einer 10GB-gzip-Datei modifizieren muss, um ein Dekomprimieren und Neukomprimieren der gesamten Datei zu vermeiden.gzip partielle Modifikation und erneute Komprimierung

Antwort

1

Nein. Bei der Komprimierung der nachfolgenden Daten wird die Komprimierung in der Regel die vorhergehenden Daten verwenden. Sie können also die vorhergehenden Daten nicht ändern, ohne die restlichen Daten erneut zu komprimieren.

Eine Ausnahme wäre, wenn in den komprimierten Daten ursprünglich Haltepunkte enthalten wären, die den Verlauf an jedem Haltepunkt zurücksetzen. In zlib wird dies während der Komprimierung mit Z_FULL_FLUSH erreicht.