文件压缩与解压缩

Java API java.util.zip

类 ZipFile

构造方法:
    ZipFile(File file);
    //打开供阅读的ZIP文件,由指定的File对象给出。
    ZipFile(File file,int mode)
    //打开新的ZipFile以使用指定模式从指定File对象读取
    ZipFile(String name)
    //打开Zip文件进行阅读
方法摘要:
    close()
    //关闭ZIP文件
    entries()
    //返回ZIP文件条目的枚举
    finalize() 
    //确保不再引用此ZIP文件时调用它的close()方法
    getEntry()
    //返回指定名称的ZIP文件条目;如果未找到,则返回null
    getInputStream(ZipEntry entry)
    //返回输入流以读取指定ZIP文件条目的内容
    getName()
    //返回ZIP文件的路劲名
    size()
    //返回ZIP文件中的条目数

代码:

public static void unZip(String fileName,String unZipDir){
    //先判断目标文件夹是否存在,如果不存在则创建,如果父目录不存在也新建
    File f=new File(unZipDir);
    if(!f.exists()){
        f.mkdirs();
    }
    BufferedOutputStream dest=null;
    BufferedInputStream is=null;
    ZipEntry entry;
    ZipFile zipfile =new ZipFile(fileName);
    Enumeration e =zipfile.entries();
    while(e.hasMoreElements()){
        entry =(ZipFile)e.nextElement();
        is=new BufferedInputStream(zipfile.getInputStream(entry));
        int count;
        byte[] date=new byte[1024*1024];
        FileOutputStream fos=new FileOutputStream(unZipDir+"/"+entry.getName());
        dest = new BufferedOutputStream(fos,1024*1024);
        while((count = is.read(data,0,BUFFER))!=-1){
            dest.write(data,0,count);
        }
        dest.flush();
        dest.close();
        is.close();
    }
}

Enumeration

Enumeration接口定义了从一个数据结构得到连续数据的手段。
    nextElement() 方法
        可以用来从含有多个元素的数据结构中得到下一个元素
    hasMoreElement() 方法
        是否还含有元素,如果返回true,则表示还含有至少一个元素
    while(e.hasMoreElements()){
        Object o=e.nextElement();
        System.out.println(o);
    }   

你可能感兴趣的:(Android-基础)