2011-01-29 173 views
10

我有一个相当大的BZ2文件,里面有几个文本文件。我可以使用Java来解压缩BZ2文件中的某些文件并在运行中解压缩/解析数据吗?假设一个300mb的BZ2文件包含1GB的文本。理想情况下,我希望我的java程序能够读取1 MB的BZ2文件,对其进行动态解压缩,对其执行操作并继续阅读BZ2文件以获取更多数据。那可能吗?Java - 读取BZ2文件并实时解压缩/解析

感谢

+1

`那是possible` - 是啊:) – bestsss 2011-01-29 02:21:58

回答

2

Ant的项目包含bzip2库。其中有一个org.apache.tools.bzip2.CBZip2InputStream类。您可以使用此类来即时解压缩bzip2文件 - 它只是扩展了标准的Java类库。

+0

这个库没”不承认我的bzip2格式。必须使用commons-compress。 – suhprano 2015-08-12 05:58:53

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 2015-08-15 10:01:56