2011-01-29 40 views
10

かなり大きなBZ2ファイルがあり、その中にいくつかのテキストファイルがあります。 Javaを使用してBZ2ファイル内の特定のファイルを解凍し、その場でデータを解凍/解析することは可能ですか?たとえば、300 MBのBZ2ファイルに1 GBのテキストが含まれているとします。理想的には、私のJavaプログラムがBZ2ファイルの1 MBを読み込み、その場で解凍し、それに基づいて動作し、BZ2ファイルをより多くのデータを読み続けると言うようにしたい。それは可能ですか?Java - BZ2ファイルを読み込んで解凍/解析する

おかげ

+1

は 'そのpossible'です - ええ:) – bestsss

答えて

2

のAntプロジェクトはbzip2ライブラリが含まれています。これはorg.apache.tools.bzip2.CBZip2InputStreamクラスを持っています。このクラスを使用して、即座にbzip2ファイルを解凍できます。標準のJava InputStreamクラスを拡張するだけです。

+0

このライブラリは、」didnの私のbzip2形式を認識できません。 commons-compressを使用しなければならなかった。 – suhprano

19

Apacheのcommons-compressライブラリはかなり良いです。ここではそのサンプル・ページがあります: http://commons.apache.org/proper/commons-compress/examples.html

ここでは、最新のMavenはスニペットです:

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

そして、ここでは私のutilのメソッドです:

+1

注:gzip、bzip2、xz、lzma、Pack200、DEFLATE、Zの順で受け付けます。リンクに表示されているとおり、正しいものが自動的に割り当てられます – Danielson

関連する問題