zoukankan      html  css  js  c++  java
  • Java实现多文件压缩打包的方法

    package com.biao.test;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Enumeration;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    import java.util.zip.ZipOutputStream;
    public class TestZIP {
      /**
       * 功能:压缩多个文件成一个zip文件
       * @param srcfile:源文件列表
       * @param zipfile:压缩后的文件
       */
      public static void zipFiles(File[] srcfile,File zipfile){
        byte[] buf=new byte[1024];
        try {
          //ZipOutputStream类:完成文件或文件夹的压缩
          ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipfile));
          for(int i=0;i<srcfile.length;i++){
            FileInputStream in=new FileInputStream(srcfile[i]);
            out.putNextEntry(new ZipEntry(srcfile[i].getName()));
            int len;
            while((len=in.read(buf))>0){
              out.write(buf,0,len);
            }
            out.closeEntry();
            in.close();
          }
          out.close();
          System.out.println("压缩完成.");
        } catch (Exception e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      }
      /**
       * 功能:解压缩
       * @param zipfile:需要解压缩的文件
       * @param descDir:解压后的目标目录
       */
      public static void unZipFiles(File zipfile,String descDir){
        try {
          ZipFile zf=new ZipFile(zipfile);
          for(Enumeration entries=zf.entries();entries.hasMoreElements();){
            ZipEntry entry=(ZipEntry) entries.nextElement();
            String zipEntryName=entry.getName();
            InputStream in=zf.getInputStream(entry);
            OutputStream out=new FileOutputStream(descDir+zipEntryName);
            byte[] buf1=new byte[1024];
            int len;
            while((len=in.read(buf1))>0){
              out.write(buf1,0,len);
            }
            in.close();
            out.close();
            System.out.println("解压缩完成.");
          }
        } catch (Exception e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      }
      /**功能:
       * @param args
       */
      public static void main(String[] args) {
        //2个源文件
        File f1=new File("D:\workspace\flexTest\src\com\biao\test\abc.txt");
        File f2=new File("D:\workspace\flexTest\src\com\biao\test\test.zip");
        File[] srcfile={f1,f2};
        //压缩后的文件
        File zipfile=new File("D:\workspace\flexTest\src\com\biao\test\biao.zip");
        //TestZIP.zipFiles(srcfile, zipfile);
        //需要解压缩的文件
        File file=new File("D:\workspace\flexTest\src\com\biao\test\biao.zip");
        //解压后的目标目录
        String dir="D:\workspace\flexTest\src\com\biao\test\";
        TestZIP.unZipFiles(file, dir);
      }
    }
    
    
  • 相关阅读:
    base64编码
    ios开发之指纹识别
    date
    php的学习
    mac下安装mysql遇到的无法连接的问题
    关于git上传文件过大报错的问题 remote: warning: Large files detected.
    安卓开发中Theme.AppCompat.Light的解决方法
    ubuntu操作系统中卸载mysql的安装与卸载
    重新格式化删除U盘隐藏分区与如何在LMT下安装非Ghost win7
    网易有道笔试2015-05-12
  • 原文地址:https://www.cnblogs.com/jpfss/p/9830600.html
Copyright © 2011-2022 走看看