........................

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类对象

  1. package org.lxh.demo12.zipdemo;  
  2. import java.io.File;  
  3. import java.util.zip.ZipFile;  
  4. public class ZipFileDemo01 {  
  5.     public static void main(String[] 
    args) 
    throws Exception {  
  6.         File file new File("d:" 
    File.separator 
    "mldn.zip");  
  7.                                                
    // 找到压缩文件  
  8.         ZipFile zipFile new ZipFile(file);   
    // 实例化ZipFile对象  
  9.         System.out.println("压缩文件的名称为:"
     zipFile.getName());   
  10.                                       
    // 得到压缩文件的名称  
  11.     }  

程序运行结果:

压缩文件的名称为:d:\mldn.zip

以上程序只是实例化ZipFile对象,并通过getName()方法取得了压缩文件的名称。下面介绍如何利用此类进行文件的解压缩操作,以前面的mldn.zip文件为例进行解压缩(注意,此压缩文件中只存在一个ZipEntry,即mldn.txt,如图12-22所示)。

范例:解压缩文件

  1. package org.lxh.demo12.zipdemo;  
  2. import java.io.File;  
  3. import java.io.FileOutputStream;  
  4. import java.io.InputStream;  
  5. import java.io.OutputStream;  
  6. import java.util.zip.ZipEntry;  
  7. import java.util.zip.ZipFile;  
  8. public class ZipFileDemo02 {  
  9.     public static void main(String[] args) 
    throws Exception {  
  10.         File file new File("d:" File.
    separator 
    "mldn.zip");  
  11.                                                
    // 找到压缩文件  
  12.         File outputFile new File("d:" 
    File.separator   
  13.                 "mldn_unzip.txt");           
    // 定义解压缩的文件名称  
  14.         ZipFile zipFile new ZipFile(file);     
    // 实例化ZipFile对象  
  15.         ZipEntry entry zipFile.getEntry("mldn.txt");   
  16.                                                 
    // 得到一个压缩实体  
  17.         InputStream input zipFile.getInputStream(entry);   
  18.                                                
    // 取得ZipEntry输入流  
  19.         OutputStream out new FileOutputStream(outputFile);   
  20.                                               
    // 实例化输出流对象  
  21.         int temp 0                          
    // 保存接收数据  
  22.         while ((temp input.read()) != -1   
    // 读取内容  
  23.             out.write(temp);                   
    // 输出内容  
  24.         }  
  25.         input.close();                      
    // 关闭输入流  
  26.         out.close();                      
    // 关闭输出流  
  27.     }  
  28. 以上程序是将D盘中mldn.zip中的文件解压缩到mldn_unzip.txt文件中。程序首先通过getEntry()方法根据名称取得一个压缩的ZipEntry,然后通过InputStream取得此ZipEntry的输入流,并通过循环方式将全部内容通过输出流输出。

    但是,以上程序只适合于压缩文件中存在一个ZipEntry的情况,如果一个压缩文件中存在文件夹或者多个ZipEntry就无法使用了。如果要操作更加复杂的压缩文件,就必须结合ZipInputStream类完成。


TAG:

 

评分:0

我来说两句

Open Toolbar