本文介绍Java压缩/解压.zip、.tar.gz、.tar.bz2的方式。
- 对于zip文件:使用
java.util.zip.ZipEntry和java.util.zip.ZipFile,通过设置Charset为StandardCharsets.UTF_8支持中文。 - 对于.tar.gz、tgz文件:可以看做先用tar打包,再使用gz进行压缩。使用
commons-compress包的TarArchiveInputStream和GzipCompressorInputStream。 - 对于.tar.bz2文件:可以看做先用tar打包,再使用bz2进行压缩。使用
commons-compress包的TarArchiveInputStream和BZip2CompressorInputStream。
在这里有个问题如果使用TarInputStream搭配jdk的 GZIPInputStream会产生乱码。而使用commons-compress包的TarArchiveInputStream和GzipCompressorInputStream则可解决乱码问题。
代码如下:
public class ZipUtil { |
参考文档: