zoukankan      html  css  js  c++  java
  • java实现文件zip压缩或者解压缩

    zip压缩或者解压缩
    package com.test;

    import java.io.*;
    import java.util.*;
    import java.util.zip.ZipOutputStream;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    public class TestZip {
     
    public TestZip() {
     }
     
    /**
      * 压缩文件
      * 
      * 
    @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);
        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();
      }
     }
    }
  • 相关阅读:
    长春区域赛总结
    HDU 4297 One and One Story (LCA>RMQ)
    SRM 578 div1
    开学,网赛,压力。。。
    HDU 4291 A Short problem
    最大密集子图(POJ 3155)
    ubuntu安装sunjdk1.6
    【转】容斥原理
    生成树计数问题(SPOJ 104 Highways)
    Tonelli–Shanks Algorithm 二次剩余系解法 (Ural 1132. Square Root)
  • 原文地址:https://www.cnblogs.com/cjunj/p/1834676.html
Copyright © 2011-2022 走看看