充气器输入流/放气器输出流的默认压缩



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

充气机只是一个

new java.util.zip.Inflator()

缓冲区大小为512字节。

您可以通过导航到充气输入流构造函数的源代码来看到这一点。IDE中没有附加JDK源代码吗?停止一切并做好准备,这是至关重要的。

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

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

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

假设通过自己的实现可以使用不同的实现,或者重用它等。

最新更新