【问题标题】:Default compression for InflaterInputStream/DeflaterOutputStreamInflaterInputStream/DeflaterOutputStream 的默认压缩
【发布时间】:2013-07-04 17:58:36
【问题描述】:

根据InflaterInputStream 的javadoc,对于它的单参数构造函数(只有一个InputStream),输入流是用a default decompressor and buffer size 初始化的。问题是,默认解压器和缓冲区大小到底是多少? DeflaterOutputStream 也是如此。

【问题讨论】:

    标签: java compression inputstream default outputstream


    【解决方案1】:

    充气机只是一个

    new java.util.zip.Inflator()
    

    缓冲区大小为 512 字节。

    您可以通过导航到 InflaterInputStream 构造函数的源代码来查看这一点。 IDE 中没有附加 JDK 源代码?停止一切并进行设置,这是必不可少的。

    【讨论】:

      【解决方案2】:

      如果您查看source,您会发现它只是创建了java.util.zip.Inflater 的一个实例:

      public InflaterInputStream(InputStream in) {
          this(in, new Inflater());
          usesDefaultInflater = true;
      }
      

      处理的唯一区别是,在关闭 InflaterInputStream 时,“默认”Inflater 会被关闭(使用 end()),如果将 Inflater 的实例传递给其中一个,则不会发生这种情况其他构造函数。

      大概传递你自己的允许你使用不同的实现,或者重用它等等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-24
        • 1970-01-01
        • 2019-04-24
        • 2017-12-03
        • 2012-06-03
        • 2017-05-06
        • 2012-05-27
        • 1970-01-01
        相关资源
        最近更新 更多