Comment lire GZIPInputstream
Scénario est de lire un fichier gzip(.gz extension)
Ai entendu qu'il y a GZIPInputStream classe pour gérer cela.
Voici le code à convertir le fichier objet à GZIPStream.
FileInputStream fin = new FileInputStream(FILENAME);
GZIPInputStream gzis = new GZIPInputStream(fin);
Doute est de savoir comment lire le contenu de ce " gzis objet?
- Je suis confus, c'est juste un InputStream, vous l'avez lu comme n'importe quel autre InputStream.
- vous avez peut être source de confusion zip et gzip, cependant.
- Ouais sa gzip pas zip.J'ai mis à jour.
- Vous lisez la GZIPInputStream exactement de la même manière que vous aviez lu le FileInputStream si les données n'avaient pas été au Format gzip. Si binaire, vous lisez dans les tableaux d'octets. Si le texte, vous enchaînez avec un InputStreamReader, en spécifiant l'encodage des caractères.
- stackoverflow.com/questions/1080381/...
Vous devez vous connecter pour publier un commentaire.
Décoder des octets à partir d'un InputStream, vous pouvez utiliser un InputStreamReader. Un BufferedReader vous permettra de lire votre flux de données ligne par ligne.
Si le zip est un fichier de Texte
Comme l'a remarqué dans les commentaires. Il ignore le codage, et peut-être de ne pas fonctionner correctement.
Meilleure Solution
Il va écrire les données non compressées à l'destinationPath
Je recommande que vous utilisez Apache Commons Compresser API
ajouter Maven dependency:
ensuite utiliser
GZipCompressorInputStream
classe, exemple décrit ici