我有一个关于流大小的小问题。这是我的尝试:
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
ZipOutputStream zipStream = new ZipOutputStream(outStream);
zipStream.close();
outStream.close();
System.err.println(outStream.toByteArray().length);
结果长度始终是 22。你能解释一下为什么吗?
感谢您的帮助。
因为一个ZipOutputStream
正在编写 ZIP 文件格式,并且 ZIP 文件格式包含始终存在的元数据,即使在空 zip 文件中也是如此。具体来说,空 zip 仅包含中央目录记录的结尾:
https://en.wikipedia.org/wiki/Zip_(file_format)#Limits https://en.wikipedia.org/wiki/Zip_(file_format)#Limits
.ZIP 文件的最小大小为 22 字节。此类空 zip 文件仅包含中央目录记录结束 (EOCD):[0x50,0x4B,0x05,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)