java 项目总是有上传 zip 包和下载 zip 包的需求,这时就得用 ZipInputStream 和 ZipOutputStream 类。
基础概念
- ZipOutputStream:是一种 FilterInputStream 、装饰器模式中的实现类,它可以直接读取zip 包的内容
- ZipOutputStream (OutputStream out):zip 输出流
- ZipEntry(String name):表示压缩文件中的一个文件或者目录
- void putNextEntry(ZipEntry e):写入新的压缩文件或者目录
- ZipIutputStream:是一种 FilterOutputStream, 可以实现 zip 文件的解压
- ZipIutputStream (IutputStream out):zip 输入流
- ZipEntry getNextEntry():得到压缩文件中的一个文件或者目录
压缩
压缩文件就是先读取一个文件夹的内容,创建 ZipEntry 放入 ZipOutputStream 下,然后用 InputStream 读取源文件内容并写入 ZipOutputStream。
解压
一个压缩文件就是一个特殊的 File 叫做 ZipFile,用 Enumeration 类取出 zip 文件中被压缩的文件。
解压文件 就是先用 zipFile.entries() 读取压缩文件夹中的文件, 生成 InputStream 流后写入被解压的 输出流
总结
介绍了一下 java 中的压缩文件是如何解压与压缩的,对小伙伴们有帮助的话就点个赞哦。
示例代码:https://github.com/javatechnorth/java-north-sample/blob/master/zip/zipDemo.java
面试大全包括:包括 Java 集合、JVM、多线程、并发编程、设计模式、SpringBoot、SpringCloud、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、Python、HTML、CSS、Vue、React、JavaScript、Android 大数据、阿里巴巴等大厂面试题等、等技术栈!
领取方式:扫描下方公众号【Java技术指北】回复【006】即可获取