①了解压缩流的主要作用
②了解Java IO支持的三种压缩格式
③掌握ZipOutputStream,ZipFile,ZipInputStream三个类的作用
经常可以看见各种压缩文件:zip,jar,gz。
正常情况下,在IO操作中,所有的类库都在IO包中。
注意:实例化ZipEntry的时候,要设置名称,这个名称实际上就是压缩文件中每一个元素的名称。
此类的功能就是完成ZIP格式输出的。此类是一个字节的输出流。
在压缩文件中,每一个压缩文件的内容都可以用一个ZipEntry来表示,所以在进行压缩之前必须通过putNextEntry设置一个ZipEntry。
以上的代码只是完成了一个文件的压缩,如果一个文件夹呢?分析如下:
示例代码:
ZipFile类在实例化的时候必须接收一个File类的实例,此File类的实例是指向一个压缩的*.zip文件。
第一步:为ZipFile实例化
第二步:通过ZipFile文件,为mldb.zip文件进行解压操作。
以上的操作有一个问题:必须知道压缩文件中的每一个压缩实体的名称,才可以进行解压缩操作,假设现在是一文件夹呢?
这就需要了解ZipInputStream类的定义。
此类是InputStream的子类。构造方法需要接受一个InputStream的实例化对象。不用输入实体名称,就可以得到每一个实体的名称,例如次特性,并结合ZipFile就可以完成解压文件夹的功能。ZipFile对象可以找到每一个ZipEntry的输入流,但是ZipInputStream不能得到每一个的输入流,但是ZipInputStream在取得每一个ZipEntry的时候,不需要每一个ZipEntry的名称。
对于文件夹的解压,一定要注意目录问题,如果目录不存在,则要进行创建操作。
1.压缩文件中的每一个压缩实体都使用ZipEntry保存,一个压缩文件中可能包含一个或多个ZipEntry对象
2.java支持zip,jar,gz三种格式的压缩操作,操作流程基本上是一样的
3.ZipOOutputStream可以进行压缩输出,但是输出的并不一定是文件
4.ZipFile表示每一个压缩文件,可以得到每一个压缩实体的输入流
5.ZipInputStream可以得到每一个实体,但是不能得到压缩输入流