2017-05-18 1 views
0

Je ne suis pas familier avec les algorithmes de compression. Est-il possible avec zlib ou une autre bibliothèque de décompresser, de modifier et de recompresser seulement le début d'un flux gzip, puis de le concaténer avec le reste compressé du flux? Cela serait fait dans le cas où, par exemple, j'ai besoin de modifier les premiers octets des données utilisateur (pas les en-têtes) d'un fichier gzip de 10 Go afin d'éviter la décompression et la recompression du fichier entier.gzip modification partielle et recompression

Répondre

1

Non. La compression utilisera généralement les données précédentes pour compresser les données suivantes. Vous ne pouvez donc pas modifier les données précédentes sans recomprimer les données restantes.

Une exception serait l'existence de points d'arrêt placés dans les données compressées à l'origine qui réinitialisaient l'historique à chaque point d'arrêt. En zlib, ceci est accompli avec Z_FULL_FLUSH pendant la compression.