Apache Compress 是什么?

  Apache  提供的文件压缩工具。

运行环境

  jdk 1.7

  commons-compress 1.15

测试代码

  

 1 package com.m.basic;
 2 
 3 import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
 4 import org.junit.Test;
 5 
 6 import java.io.*;
 7 import java.util.zip.ZipOutputStream;
 8 
 9 public class CompressTest {
10     
11     @Test
12     public void compressTest() {
13         File targetFile = new File("D:/malin/malin.zip");
14         File sourceFile = new File("D:/malin/xxx");
15 
16         compressFile(targetFile, sourceFile);
17     }
18 
19     public void compressFile(File targetFile, File sourceFile) {
20         ZipOutputStream zipOutput = null;
21         try {
22             zipOutput = new ZipOutputStream(new FileOutputStream(targetFile));
23             compress(zipOutput, sourceFile, sourceFile.getName());
24         } catch (Exception e) {
25             e.printStackTrace();
26         } finally {
27             if (zipOutput != null) {
28                 try {
29                     zipOutput.closeEntry();
30                     zipOutput.close();
31                 } catch (IOException e) {
32                     e.printStackTrace();
33                 }
34             }
35         }
36     }
37 
38     private void compress(ZipOutputStream zipOutput, File sourceFile, String base) throws IOException {
39         if (sourceFile.isDirectory()) {
40             File[] files = sourceFile.listFiles();
41             if (files.length == 0) {
42                 System.out.println(base + "/");
43                 zipOutput.putNextEntry(new ZipArchiveEntry(base + "/"));
44             } else {
45                 for (File file : files) {
46                     compress(zipOutput, file, base + "/" + file.getName());
47                 }
48             }
49         } else {
50             zipOutput.putNextEntry(new ZipArchiveEntry(base));
51             FileInputStream fis = new FileInputStream(sourceFile);
52             BufferedInputStream bis = new BufferedInputStream(fis);
53 
54             int tag;
55             System.out.println(base);
56             while ((tag = bis.read()) != -1) {
57                 zipOutput.write(tag);
58             }
59             fis.close();
60             bis.close();
61         }
62     }
63 }
View Code

相关文章:

  • 2022-12-23
  • 2021-07-06
  • 2021-06-12
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2022-01-20
猜你喜欢
  • 2021-06-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-11
  • 2022-01-14
相关资源
相似解决方案