简单测试Demo:如何用Java压缩文件夹和文件
2021-06-22 05:05
标签:private vat complete 目录结构 cep 运行 压缩包 leo public 一、直接贴出测试代码 简单测试Demo:如何用Java压缩文件夹和文件 标签:private vat complete 目录结构 cep 运行 压缩包 leo public 原文地址:https://www.cnblogs.com/newwind/p/9680253.html 1 package com.jason.zip;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.FileOutputStream;
6 import java.io.IOException;
7 import java.io.OutputStream;
8 import java.util.ArrayList;
9 import java.util.List;
10 import java.util.zip.ZipEntry;
11 import java.util.zip.ZipOutputStream;
12 /**
13 * 压缩文件夹或批量压缩文件
14 * @function
15 * @author 小风微凉
16 * @time 2018-9-14 下午2:12:45
17 */
18 public class ZipAction {
19 private static final int BUFFER_SIZE = 2 * 1024;
20 /**
21 * 压缩成ZIP
22 * @param srcDir 压缩文件夹路径
23 * @param out 压缩文件输出流
24 * @param KeepDirStructure 是否保留原来的目录结构,true:保留目录结构;
25 * false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败)
26 * @throws RuntimeException 压缩失败会抛出运行时异常
27 */
28 public static void toZip(String srcDir, OutputStream out, boolean KeepDirStructure)
29 throws RuntimeException{
30 long start = System.currentTimeMillis();
31 ZipOutputStream zos = null ;
32 try {
33 zos = new ZipOutputStream(out);
34 File sourceFile = new File(srcDir);
35 compress(sourceFile,zos,sourceFile.getName(),KeepDirStructure);
36 long end = System.currentTimeMillis();
37 System.out.println("压缩完成,耗时:" + (end - start) +" ms");
38 } catch (Exception e) {
39 throw new RuntimeException("zip error from ZipAction",e);
40 }finally{
41 if(zos != null){
42 try {
43 zos.close();
44 } catch (IOException e) {
45 e.printStackTrace();
46 }
47 }
48 }
49 }
50
51 /**
52 * 压缩成ZIP 方法2
53 * @param srcFiles 需要压缩的文件列表
54 * @param out 压缩文件输出流
55 * @throws RuntimeException 压缩失败会抛出运行时异常
56 */
57 public static void toZip(List