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();
      }
     }
    }
  • 相关阅读:
    Windows Phone 8初学者开发—第2部分:安装Windows Phone SDK 8.0
    Windows Phone 8初学者开发—第1部分:系列介绍
    开始翻译Windows Phone 8 Development for Absolute Beginners教程
    Windows 8 动手实验系列教程 实验8:Windows应用商店API
    Windows 8 动手实验系列教程 实验7:磁贴和通知
    Windows 8 动手实验系列教程 实验6:设置和首选项
    Windows 8 动手实验系列教程 实验5:进程生命周期管理
    Unix时间戳计算
    转载css层级优先级。
    增加原型方法写出删除一个数组相同元素的函数
  • 原文地址:https://www.cnblogs.com/cjunj/p/1834676.html
Copyright © 2011-2022 走看看