InflaterInputStream / DeflaterOutputStream的默认压缩

时间:2013-07-04 17:58:37

标签: java compression inputstream default outputstream

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

2 个答案:

答案 0 :(得分:2)

充气机只是一个

new java.util.zip.Inflator()

,缓冲区大小为512字节。

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

答案 1 :(得分:1)

如果查看source,您会看到它只是创建java.util.zip.Inflater的实例:

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

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

据推测,传递自己的实现允许您使用不同的实现,或者重复使用它等。