use*_*363 13 java compression io
我有一个相当大的BZ2文件,里面有几个文本文件.我是否可以使用Java解压缩BZ2文件中的某些文件并动态解压缩/解析数据?假设一个300mb的BZ2文件包含1 GB的文本.理想情况下,我希望我的java程序能够读取1 MB的BZ2文件,动态解压缩,对其进行操作并继续读取BZ2文件以获取更多数据.那可能吗?
谢谢
Chi*_*lly 24
来自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>
Run Code Online (Sandbox Code Playgroud)
这是我的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;
}
Run Code Online (Sandbox Code Playgroud)
Ant 项目包含一个bzip2库。其中有一个org.apache.tools.bzip2.CBZip2InputStream
类。您可以使用此类即时解压缩 bzip2 文件 - 它只是扩展了标准 JavaInputStream
类。