zoukankan      html  css  js  c++  java
  • [转贴]Compress files using the Java ZIP API

    http://www.java2s.com/Code/Java/File-Input-Output/CompressfilesusingtheJavaZIPAPI.htm

    Compress files using the Java ZIP API



    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.zip.GZIPOutputStream;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;

    public class Compress {
      public static void gzipFile(String from, String to) throws IOException {
      FileInputStream in = new FileInputStream(from);
      GZIPOutputStream out = new GZIPOutputStream(new FileOutputStream(to));
      byte[] buffer = new byte[4096];
      int bytesRead;
      while ((bytesRead = in.read(buffer)) != -1)
      out.write(buffer, 0, bytesRead);
      in.close();
      out.close();
      }

      /** Zip the contents of the directory, and save it in the zipfile */
      public static void zipDirectory(String dir, String zipfile)
      throws IOException, IllegalArgumentException {
      // Check that the directory is a directory, and get its contents
      File d = new File(dir);
      if (!d.isDirectory())
      throw new IllegalArgumentException("Not a directory: "
      + dir);
      String[] entries = d.list();
      byte[] buffer = new byte[4096]; // Create a buffer for copying
      int bytesRead;

      ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));

      for (int i = 0; i < entries.length; i++) {
      File f = new File(d, entries[i]);
      if (f.isDirectory())
      continue;//Ignore directory
      FileInputStream in = new FileInputStream(f); // Stream to read file
      ZipEntry entry = new ZipEntry(f.getPath()); // Make a ZipEntry
      out.putNextEntry(entry); // Store entry
      while ((bytesRead = in.read(buffer)) != -1)
      out.write(buffer, 0, bytesRead);
      in.close(); 
      }
      out.close();
      }

      public static void main(String args[]) throws IOException {
      String from = ".";
      File f = new File(from);
      boolean directory = f.isDirectory(); // Is it a file or directory?

      Compress.zipDirectory(from, from + ".zip");
      Compress.gzipFile(from, from + ".gz");
      }
    }

  • 相关阅读:
    管理之道
    Swagger-editor安装启动及错误处理,注意事项
    装箱 拆箱 枚举 注解 多态
    Spring Security 内置过滤器表
    Spring Boot入门 and Spring Boot与ActiveMQ整合
    消息中间件解决方案JMS
    网页静态化解决方案-Freemarker demo+语法
    spring-data-radis错误
    java基础总结
    swift oc 混编的头文件
  • 原文地址:https://www.cnblogs.com/Samsara/p/1296894.html
Copyright © 2011-2022 走看看