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();
      }
     }
    }
  • 相关阅读:
    常见的块级元素和内联(行内)元素
    全屏滚动插件fullPage的使用
    Git使用规范
    MinIO使用教程(待完成)
    [Flutter] CachedNetworkImage加载图片证书校验失败
    [Flutter] 扩展一个支持弹出菜单的IconButton
    [Node.js] 后端服务导出CSV数据流给前端下载
    下载 VMware Tools (VMware 16)
    [Flutter] 在Windows平台中使用VS2019调试win插件
    c#CSV文件生成
  • 原文地址:https://www.cnblogs.com/cjunj/p/1834676.html
Copyright © 2011-2022 走看看