我看到ZipInputStream是从InflaterInputStream继承的。后者有一个内部缓冲区。
我看到的大多数代码示例都是通过以下方式构造一个新的 ZipInputStream:
File f = new File("myfile");
FileInputStream fs = new FileInputStream(f);
BufferedInputStream bs = new BufferedInputStream(fs);
ZipInputStream zs = new ZipInputStream(bs);
我读到 InflaterInputStream 的子类不需要从 BufferedInputStream 构造,因为它们本身是缓冲的。它是否正确?构造 ZipInputStream 的推荐方法是什么?
也许有一点上下文,我正在阅读的 zip 文件大小从几 KB 到几 MB。
我看到你的问题了。是的,
InflaterInputStream
和 InflaterOutputStream
有一个内部缓冲区。
没有正确的方法来实例 ZipInputStream,只有建议。
我建议您像这样实例化 ZipInputStream:
File file = new File("myfile");
FileInputStream fis = new FileInputStream(file);
ZipInputStream zis = new ZipInputStream(fis);
希望这个答案能解决您的问题;)