J'ai certaines données qui occupent plus de 50 Mo dans un fichier non compressé, mais compresse jusqu'à moins d'un demi-Mo en utilisant gzip
.Comment traiter les données compressées en Java
La plupart de ces données sont des données numériques. J'essaie de comprendre comment traiter ces données sans avoir à les décompresser complètement. Par exemple, si ces données contiennent un couple de chaînes et 5 valeurs numériques par enregistrement, y a-t-il un moyen de décompresser une seule ligne (ou un petit ensemble de lignes), de les traiter, puis de les supprimer?
Unix fournit des utilitaires tels que zcat
, grep
, etc. qui fonctionnent directement sur des données compressées, je voudrais faire la même chose en Java.
Merci
50mb est pas beaucoup ... –
Tous les outils Unix gzip basés essentiellement décompressez le fichier entier lorsque vous travaillez avec le contenu (sauf si tuyauterie à une application qui a fini sans lire tout). En d'autres termes, ils ne se comportent pas comme vous voulez que votre programme Java se comporte. –
@ Thorbjørn: De quels outils parlez-vous? La plupart des outils décompresseront à la volée à moins que vous leur disiez d'écrire la sortie dans un fichier. –