用Java解压缩Gzip存档

Rui*_*iro 5 java gzip archive

我正在尝试用Java解压缩大约8000个gzip格式的文件.我的第一次尝试是使用GZIPInputStream,但性能很糟糕.

任何人都知道解压缩gzip档案的替代方案吗?我尝试了ZipInputStream,但它没有识别gzip格式.

先感谢您.

Tom*_*ine 8

你需要使用缓冲.编写小块数据将是低效的.压缩实现采用Sun JDK中的本机代码.即使不是缓冲性能,通常也应该超过合理的文件或网络I/O.

OutputStream out = new BufferedOutputStream(new GZIPOutputStream(rawOut));

InputStream in = new BufferedInputStream(new GZIPInputStream(rawIn));
Run Code Online (Sandbox Code Playgroud)

由于本机代码用于实现解压缩/压缩算法,因此在使用后要非常小心地关闭流(而不仅仅是底层流).我发现悬挂着大量的"Deflaters" 对性能非常不利.

ZipInputStream 处理文件档案,这与压缩流完全不同.