/ / Java - Lit le fichier BZ2 et décompresse / analyse à la volée - java, compression, io

Java - Lecture du fichier BZ2 et décompression / analyse à la volée - Java, compression, io

J'ai un assez gros fichier BZ2 avec plusieursfichiers texte en elle. Puis-je utiliser Java pour décompresser certains fichiers du fichier BZ2 et décompresser / analyser les données à la volée? Supposons qu'un fichier BZ2 de 300 Mo contient 1 Go de texte. Idéalement, je voudrais que mon programme Java lise 1 Mo du fichier BZ2, le décompresse à la volée, agisse dessus et continue à lire le fichier BZ2 pendant plus de données. Est-ce possible?

Merci

Réponses:

20 pour la réponse № 1

La bibliothèque commons-compress d'Apache est très bonne. Voici leurs échantillons page: http://commons.apache.org/proper/commons-compress/examples.html

Voici le dernier extrait de Maven:

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.10</version>
</dependency>

Et voici ma méthode util:

public static BufferedReader getBufferedReaderForCompressedFile(String fileIn) throws FileNotFoundException, CompressorException {
FileInputStream fin = new FileInputStream(fileIn);
BufferedInputStream bis = new BufferedInputStream(fin);
CompressorInputStream input = new CompressorStreamFactory().createCompressorInputStream(bis);
BufferedReader br2 = new BufferedReader(new InputStreamReader(input));
return br2;
}

2 pour la réponse № 2

Le projet Ant contient un bzip2 bibliothèque. Qui a un org.apache.tools.bzip2.CBZip2InputStream classe. Vous pouvez utiliser cette classe pour décompresser le fichier bzip2 à la volée. Elle étend simplement la norme Java InputStream classe.