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/

  • 相关阅读:
    bzoj 3209: 花神的数论题 数位dp
    bzoj 1799: [Ahoi2009]self 同类分布 数位dp
    Codeforces 755 F. PolandBall and Gifts 多重背包+贪心
    Educational Codeforces Round 17 D. Maximum path DP
    Codeforces Round #396 (Div. 2) C. Mahmoud and a Message DP
    Codeforces 768 E. Game of Stones 博弈DP
    HDU 2457/POJ 3691 DNA repair AC自动机+DP
    Codefoces 791D. Bear and Tree Jumps 树形DP
    Codeforces 440 D. Berland Federalization 树形DP,记录DP
    Codeforces 709E. Centroids 树形DP
  • 原文地址:https://www.cnblogs.com/gnuhpc/p/2822258.html
Copyright © 2011-2022 走看看