• [转贴]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");
      }
    }

  • 相关阅读:
    calcite介绍
    kylin介绍
    hbase(三)coprocessor
    流式计算-窗口
    实验室服务器琐事
    流畅的python笔记
    语义分割相关网络简述
    leetcode 696
    树的非递归遍历
    leetcode 665
  • 原文地址:https://www.cnblogs.com/Samsara/p/1296894.html
Copyright © 2020-2023  润新知