........................
ZipFile类
上一篇 /
下一篇 2011-11-02 10:16:05
/ 个人分类:java
在Java中,每一个压缩文件都可以使用ZipFile表示,还可以使用ZipFile根据压缩后的文件名称找到每一个压缩文件中的ZipEntry并将其进行解压缩操作,ZipFile类的常用方法如表
序 号 | 方 法 | 类 型 | 描 述 |
1 | public ZipFile(File file) throws ZipException, IOException | 构造 | 根据File类实例 化ZipFile对象 |
2 | public ZipEntry getEntry (String name) | 普通 | 根据名称找到其 对应的ZipEntry |
3 | public InputStream getInputStream(ZipEntry entry) throws IOException | 普通 | 根据ZipEntry取得 InputStream实例 |
4 | public String getName() | 普通 | 得到压缩文件的路径名 |
ZipFile类实例化时需要File指定的路径,下面介绍ZipFile类的基本使用。
范例:实例化ZipFile类对象
- package org.lxh.demo12.zipdemo;
- import java.io.File;
- import java.util.zip.ZipFile;
- public class ZipFileDemo01 {
- public static void main(String[]
args) throws Exception { - File file = new File("d:" +
File.separator + "mldn.zip"); -
// 找到压缩文件 - ZipFile zipFile = new ZipFile(file);
// 实例化ZipFile对象 - System.out.println("压缩文件的名称为:"
+ zipFile.getName()); -
// 得到压缩文件的名称 - }
- }
程序运行结果:
压缩文件的名称为:d:\mldn.zip
以上程序只是实例化ZipFile对象,并通过getName()方法取得了压缩文件的名称。下面介绍如何利用此类进行文件的解压缩操作,以前面的mldn.zip文件为例进行解压缩(注意,此压缩文件中只存在一个ZipEntry,即mldn.txt,如图12-22所示)。
范例:解压缩文件
- package org.lxh.demo12.zipdemo;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.util.zip.ZipEntry;
- import java.util.zip.ZipFile;
- public class ZipFileDemo02 {
- public static void main(String[] args)
throws Exception { - File file = new File("d:" + File.
separator + "mldn.zip"); -
// 找到压缩文件 - File outputFile = new File("d:" +
File.separator - + "mldn_unzip.txt");
// 定义解压缩的文件名称 - ZipFile zipFile = new ZipFile(file);
// 实例化ZipFile对象 - ZipEntry entry = zipFile.getEntry("mldn.txt");
-
// 得到一个压缩实体 - InputStream input = zipFile.getInputStream(entry);
-
// 取得ZipEntry输入流 - OutputStream out = new FileOutputStream(outputFile);
-
// 实例化输出流对象 - int temp = 0;
// 保存接收数据 - while ((temp = input.read()) != -1) {
// 读取内容 - out.write(temp);
// 输出内容 - }
- input.close();
// 关闭输入流 - out.close();
// 关闭输出流 - }
- }
以上程序是将D盘中mldn.zip中的文件解压缩到mldn_unzip.txt文件中。程序首先通过getEntry()方法根据名称取得一个压缩的ZipEntry,然后通过InputStream取得此ZipEntry的输入流,并通过循环方式将全部内容通过输出流输出。
但是,以上程序只适合于压缩文件中存在一个ZipEntry的情况,如果一个压缩文件中存在文件夹或者多个ZipEntry就无法使用了。如果要操作更加复杂的压缩文件,就必须结合ZipInputStream类完成。
收藏
举报
TAG: