《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.3.3 ZIP文档

简介: 本节书摘来华章计算机《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一书中的第2章 ,第2.3.3节,[美] 凯S.霍斯特曼(Cay S. Horstmann) 著陈昊鹏 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3.3 ZIP文档

ZIP文档(通常)以压缩格式存储了一个或多个文件,每个ZIP文档都有一个头,包含诸如每个文件名字和所使用的压缩方法等信息。在Java中,可以使用ZipInputStream来读入ZIP文档。你可能需要浏览文档中每个单独的项,getNextEntry方法就可以返回一个描述这些项的ZipEntry类型的对象。向ZipInputStream的getInputStream方法传递该项可以获取用于读取该项的输入流。然后调用closeEntry来读入下一项。下面是典型的通读ZIP文件的代码序列:
image
image

要写出到ZIP文件,可以使用ZipOutputStream,而对于你希望放入到ZIP文件中的每一项,都应该创建一个ZipEntry对象,并将文件名传递给ZipEntry的构造器,它将设置其他诸如文件日期和解压缩方法等参数。如果需要,你可以覆盖这些设置。然后,你需要调用ZipOutputStream的putNextEntry方法来开始写出新文件,并将文件数据发送到ZIP输出流中。当完成时,需要调用closeEntry。然后,你需要对所有你希望存储的文件都重复这个过程。下面是代码框架:
image

注意:JAR文件(在卷Ⅰ第13章中讨论过)只是带有一个特殊项的ZIP文件,这个项称作清单。你可以使用JarInputStream和JarOutputStream类来读写清单项。
ZIP输入流是一个能够展示流的抽象化的强大之处的实例。当你读入以压缩格式存储的数据时,不必担心边请求边解压数据的问题,而且ZIP格式的字节源并非必须是文件,也可以是来自网络连接的ZIP数据。事实上,当Applet的类加载器读入JAR文件时,它就是在读入和解压来自网络的数据。
注意:2.5.8节将展示如何使用Java SE7的FileSystem类而无需特殊API来访问ZIP文档。
image
image
image
image

相关文章
|
1月前
|
开发框架 Java API
最新Java基础系列课程--Day13-高级特性(二)
最新Java基础系列课程--Day13-高级特性
|
1月前
|
NoSQL Java 关系型数据库
基于java swing和mysql实现的汽车租赁管理系统(源码+数据库+文档+运行指导视频)
基于java swing和mysql实现的汽车租赁管理系统(源码+数据库+文档+运行指导视频)
|
1月前
|
Java 数据安全/隐私保护
基于Java的酒店管理系统设计与实现(源码+lw+部署文档+讲解等)
基于Java的酒店管理系统设计与实现(源码+lw+部署文档+讲解等)
35 0
|
1月前
|
Java 数据安全/隐私保护
基于Java的即可运动健身器材网站设计与实现(源码+lw+部署文档+讲解)
基于Java的即可运动健身器材网站设计与实现(源码+lw+部署文档+讲解)
28 0
|
1月前
|
存储 前端开发 Java
基于springboot的java读取文档内容(超简单)
基于springboot的java读取文档内容(超简单)
22 0
|
1月前
|
Java 程序员 API
最新Java基础系列课程--Day13-高级特性(三)
最新Java基础系列课程--Day13-高级特性
|
1月前
|
开发框架 Java 程序员
最新Java基础系列课程--Day13-高级特性(一)
最新Java基础系列课程--Day13-高级特性
|
1月前
|
NoSQL Java 关系型数据库
基于java Swing 和 mysql实现的购物管理系统(源码+数据库+说明文档+运行指导视频)
基于java Swing 和 mysql实现的购物管理系统(源码+数据库+说明文档+运行指导视频)
|
1月前
|
NoSQL Java 关系型数据库
基于java swing和mysql实现的学生选课成绩信息管理系统(源码+数据库+ER图文档+运行指导视频)
基于java swing和mysql实现的学生选课成绩信息管理系统(源码+数据库+ER图文档+运行指导视频)
|
1月前
|
Java
基于Java Swing实现的日历记事本系统【源码+报告文档】
基于Java Swing实现的日历记事本系统【源码+报告文档】