zoukankan      html  css  js  c++  java
  • 【Java6学习笔记】操作zip文件

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

    1.ZIP文件的创建

    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.FileInputStream;
    import java.io.IOException;
    public class ZipCreate {
        public static void main(String arg[]) {
            ZipCreate zc = new ZipCreate();
            zc.create("testfile.zip",arg);
        }
        public void create(String zipfilename,String filename[]) {
            byte block[] = new byte[256];
            int length;
            try {
                //FileOutputStream -> ZipOutputStream
                FileOutputStream fos = new FileOutputStream(zipfilename);
                ZipOutputStream out = new ZipOutputStream(fos);
                for(int i=0; i<filename.length; i++) {
                //FileInputStream->ZipEntry
                    FileInputStream in = new FileInputStream(filename[i]);
                    String name = filename[i].replace(File.separatorChar,'/');
                    ZipEntry zipentry = new ZipEntry(name);
                    out.putNextEntry(zipentry);

                //in->out
                    while((length = in.read(block)) > 0)
                        out.write(block,0,length);
                    out.closeEntry();
                    in.close();
                }
                out.close();
            } catch(IOException e) {
                System.out.println(e);
            }
        }
    }

    2.ZIP文件的读取

    iimport java.util.zip.ZipFile;
    import java.util.zip.ZipEntry;
    import java.util.Enumeration;
    import java.io.IOException;
    public class ZipList {
        public static void main(String arg[]) {
            ZipList zl = new ZipList();
            zl.list("testfile.zip");
        }
        public void list(String filename) {
            try {
                ZipFile zipfile = new ZipFile(filename);
                Enumeration entrylist = zipfile.entries();
                while(entrylist.hasMoreElements()) {
                    ZipEntry zipentry = (ZipEntry)entrylist.nextElement();
                    System.out.println(zipentry.getName());
                }
                zipfile.close();
            } catch(IOException e) {
                System.out.println(e);
            }
        }
    }


    3.ZIP文件的解压

    import java.util.zip.ZipFile;
    import java.util.zip.ZipEntry;
    import java.util.Enumeration;
    import java.io.InputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    public class ZipExtract {
        public static void main(String arg[]) {
            ZipExtract ze = new ZipExtract();
            ze.extract("testfile.zip");
        }
    public void extract(String zipfilename) {
            byte block[] = new byte[256];
            int length;
            try {
                ZipFile zipfile = new ZipFile(zipfilename);
                Enumeration entrylist = zipfile.entries();
                while(entrylist.hasMoreElements()) {
                    ZipEntry zipentry = (ZipEntry)entrylist.nextElement();
                    InputStream in = zipfile.getInputStream(zipentry);
    String newfilename = zipentry.getName();
                    FileOutputStream out = new FileOutputStream(newfilename);
                    while((length = in.read(block)) > 0)
                        out.write(block,0,length);
                    in.close();
                    out.close();
                }
            } catch(IOException e) {
                System.out.println(e);
            }
        }
    }

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

  • 相关阅读:
    java开发中的常见类和对象-建议阅读时间3分钟
    周末学习-泛型-就是传入什么类型就是什么类型-花了一个半小时
    实习第二天-String对象的不可变性-未解决
    实习第二天-java参数传递-精华在文章最后2句话
    实习第二天-对象-对象引用-引用变量-精-精-精-下雨天
    实习第一天:try和catch的使用
    实习第二天-今年第一场雨-方法的重载(马上想到println()函数和abs(函数))
    实习第一周第一天:接口 extends是继承类,implement是实现接口,原接口里面的方法填充,方法名也是不变,重写override是父类的方法名不变,把方法体给改了
    实习第一天:static 声明的 变量和 方法
    JavaWeb学习总结(二)-修改Tomcat服务器的端口(半年之后再总结)
  • 原文地址:https://www.cnblogs.com/gnuhpc/p/2822258.html
Copyright © 2011-2022 走看看