【问题标题】:Java ZipOutputStream only deflate certain files / deflate filterJava ZipOutputStream 只放气某些文件/放气过滤器
【发布时间】:2011-09-28 04:57:40
【问题描述】:

这是一个两部分的问题,真的。

前言:我使用WinRAR来压缩文件。它使您可以选择仅压缩某些文件。我可以按文件扩展名进行过滤,例如,JPEG 文件不会被压缩,而其他文件会被压缩。

  1. 这可以通过一般的 ZIP 文件来完成,还是只是 WinRAR/RAR 格式的功能?

  2. 如果可以使用 ZIP 格式,有没有办法使用 Java 的 ZipOutputStream 类来做到这一点?或者,也许使用其他一些 ZIP Java 实现?

为了澄清,我想告诉我的 ZipOutputStream 只压缩具有特定扩展名的文件。这可能吗?

谢谢

【问题讨论】:

    标签: java zip rar winrar zipoutputstream


    【解决方案1】:

    是的,您可以使用ZipOutputStream 来完成。在每个文件之前(或当您想要更改它时)使用来自Deflater 的常量调用setLevel,在您的情况下为Deflater.NO_COMPRESSION。这方面的文档应该更清楚。

    您可以轻松地创建一个覆盖 putNextEntryZipOutputStream 的子类来处理此逻辑。

    【讨论】:

      【解决方案2】:

      ZipOutputStream 具有控制后续条目是否为are to be deflatedwith which compression level 的方法。

      这也可以是specified on the ZipEntry level(优先)。

      【讨论】:

        猜你喜欢
        • 2022-01-20
        • 2012-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-10
        • 2021-12-09
        相关资源
        最近更新 更多