解压缩流/压缩流
1.解压缩流是读取压缩包中的文件,压缩流是把文件中的数据写到压缩包中
/
zipInputStream:解压缩流 。 zipOutputStream:压缩流
2.压缩包里面的每一个文件(文件或者文件夹),在JAVA中都是一个ZipEntry对象
所以解压的本质是把压缩包里的每个ZipEntry对象按照层级拷贝到本地另一个文件中
压缩的本质是把每一个文件或者文件夹看成zipEntry对象放到压缩包中
JAVA中只能识别zip类型的压缩包
3.zip.getNextEntry
获取压缩包里面的entry对象,调用一次获取一个。按字母表顺序获取。获取不了返回null。

文件压缩有问题,压缩后,文件里面的内容都消失了-->你个sb文本输入后不保存,内容怎么压缩
4.IllegalArgumentException(zip文件损坏,不合法):
1.文件本身有损
2.文件夹或文本里面有中文路径或者特殊字符,且压缩时Windows默认使用GBK编码没使用UTF-8编码
3.读取zip文件的FileInputSteam没有创建成功
5.![图片]()
为什么zos.write将数据写到ee.txt中:
首先在创建了ZipEntry对象后,对象代表了ee.txt 文件
其次zos.putNextEntry(entry)将zipEntry与ZipOutputStream绑定,此时zos的后续写入操作都会被归属到ee.txt 文件
最后zos.closeEntry()
6.zos.closeEntry()
它的作用是关闭当前与ZipOUtputStream绑定的ZIpEntry对象,同时刷新ZipOUtputStream的缓冲区防止数据遗漏,
同时让ZipOUtputStream可以接收下一个ZipEntry对象
7.ZipEntry entry=new ZipEntry()
()里的内容表示压缩包里的路径,
如果你写ee.txt他会给你创建一个名称为ee.txt的文本
如果你写aaa\bbb\a.txt,他会按层级给你创建一个aaa文件夹,里面创建一个bbb文件夹,再在bbb里面创建一个a.txt文本


浙公网安备 33010602011771号