zoukankan      html  css  js  c++  java
  • java多文件压缩成ZIP

     1      /**
     2       * 多个文件压缩
     3       * @param srcFiles   压缩前的文件
     4       * @param zipFile    压缩后的文件
     5       */
     6      public static void zipFiles(File[] srcFiles,  File zipFile) {
     7          // 判断压缩后的文件存在不,不存在则创建
     8          if (!zipFile.exists()) {
     9              try {
    10                  zipFile.createNewFile();
    11              } catch (IOException e) {
    12                  e.printStackTrace();
    13              }
    14          }
    15          // 创建 FileOutputStream 对象
    16          FileOutputStream fileOutputStream = null;
    17          // 创建 ZipOutputStream
    18          ZipOutputStream zipOutputStream = null;
    19          // 创建 FileInputStream 对象
    20          FileInputStream fileInputStream = null;
    21   
    22          try {
    23              // 实例化 FileOutputStream 对象
    24              fileOutputStream = new  FileOutputStream(zipFile);
    25              // 实例化 ZipOutputStream 对象
    26              zipOutputStream = new  ZipOutputStream(fileOutputStream);
    27              // 创建 ZipEntry 对象
    28              ZipEntry zipEntry = null;
    29              // 遍历源文件数组
    30              for (int i = 0; i < srcFiles.length;  i++) {
    31                  // 将源文件数组中的当前文件读入  FileInputStream 流中
    32                  fileInputStream = new  FileInputStream(srcFiles[i]);
    33                  // 实例化 ZipEntry 对象,源文件数组中的当前文件
    34                  zipEntry = new  ZipEntry(srcFiles[i].getName());
    35                   zipOutputStream.putNextEntry(zipEntry);
    36                  // 该变量记录每次真正读的字节个数
    37                  int len;
    38                  // 定义每次读取的字节数组
    39                  byte[] buffer = new byte[1024];
    40                  while ((len =  fileInputStream.read(buffer)) > 0) {
    41                      zipOutputStream.write(buffer, 0,  len);
    42                  }
    43                  fileInputStream.close();
    44              }
    45              zipOutputStream.closeEntry();
    46              zipOutputStream.close();
    47              fileOutputStream.close();
    48          } catch (IOException e) {
    49              e.printStackTrace();
    50          }finally{
    51              //压缩完成删除压缩前的文件
    52              for (File file : srcFiles) {
    53                 if(file.exists()){
    54                     file.delete();
    55                 }
    56             }
    57          }
    58      }
  • 相关阅读:
    Go语言程序调试
    IDA FLIRT使用
    通过PEB寻找函数地址
    使用IWebBrowser2操控浏览器页面测试(IE)
    虚拟机检测手段
    初步了解PE分析
    CG-CTF simple-machine
    调试器原理初步学习
    简单shellcode编写
    使用ReportViewer的远程模式
  • 原文地址:https://www.cnblogs.com/lhq1996/p/13891612.html
Copyright © 2011-2022 走看看