• java 版本压缩、解压缩zip


    import java.io.*;
    import java.util.*;
    import java.util.zip.ZipOutputStream;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    public class FileMgr {
      public FileMgr() {
      }
      /**
       * 压缩文件
       * @param srcfile File[]  需要压缩的文件列表
       * @param zipfile File    压缩后的文件
       */
      public static void ZipFiles(java.io.File[] srcfile, java.io.File zipfile) {
        byte[] buf = new byte[1024];
        try {
          // Create the ZIP file
          ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));
          // Compress the files
          for (int i = 0; i < srcfile.length; i++) {
            FileInputStream in = new FileInputStream(srcfile[i]);
            // Add ZIP entry to output stream.
            out.putNextEntry(new ZipEntry(srcfile[i].getName()));
            // Transfer bytes from the file to the ZIP file
            int len;
            while ( (len = in.read(buf)) > 0) {
              out.write(buf, 0, len);
            }
            // Complete the entry
            out.closeEntry();
            in.close();
          }
          // Complete the ZIP file
          out.close();
          System.out.println("压缩完成.");
        }
        catch (IOException e) {
          e.printStackTrace();
        }
      }
      /**
       * 解压缩
       * @param zipfile File 需要解压缩的文件
       * @param descDir String  解压后的目标目录
       */
      public static void UnZipFiles(java.io.File zipfile, String descDir) {
        try {
          // Open the ZIP file
          ZipFile zf = new ZipFile(zipfile);
          for (Enumeration entries = zf.entries(); entries.hasMoreElements(); ) {
            // Get the entry name
            ZipEntry entry = ( (ZipEntry) entries.nextElement());
            String zipEntryName = entry.getName();
            InputStream in = zf.getInputStream(entry);
            // System.out.println(zipEntryName);
            OutputStream out = new FileOutputStream(descDir + zipEntryName);
            byte[] buf1 = new byte[1024];
            int len;
            while ( (len = in.read(buf1)) > 0) {
              out.write(buf1, 0, len);
            }
            // Close the file and stream
            in.close();
            out.close();
            System.out.println("解压缩完成.");
          }
        }
        catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
     
  • 相关阅读:
    Kentico的UIPager的pagesize不工作
    哈啰单车流量问题
    安卓手机无限重启是怎么回事?
    Kentico的翻译功能
    Remote Desktop Free Manager
    访问存储在服务器中的CDR
    保持观察者状态达到跳出或不迷
    高通IPQ4019
    satixnet satellite modem T1000e
    802.11n 中HT20 HT40的区别和信道划分及plus,minus含义
  • 原文地址:https://www.cnblogs.com/jearay/p/3990972.html
Copyright © 2020-2023  润新知