博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中将一个文件夹下所有的文件压缩成一个文件
阅读量:4956 次
发布时间:2019-06-12

本文共 1439 字,大约阅读时间需要 4 分钟。

/** 缓冲 */static final byte[] buffer = new byte[2048];
 
// 来源  File inputDir = new File(request.getServletContext()          .getRealPath(Constant.getUploadPath()));  if (null != inputDir.listFiles()) {      // 压缩      zip(inputDir.listFiles(), "", zip);  }

/**      * 压缩ZIP      *       * @param files      *            多个文件      * @param baseFolder      *            压缩到ZIP的父级目录(目录后面跟上File.separator)      * @param zos      *            ZipOutputStream      * @throws Exception      */      private static void zip(File[] files, String baseFolder, ZipOutputStream zos)              throws Exception {          // 输入          FileInputStream fis = null;          // 条目          ZipEntry entry = null;          // 数目          int count = 0;          for (File file : files) {              if (file.isDirectory()) {                  // 递归                  zip(file.listFiles(),  baseFolder + file.getName() + File.separator, zos);                  continue;              }              entry = new ZipEntry(baseFolder + file.getName());              // 加入              zos.putNextEntry(entry);              fis = new FileInputStream(file);              // 读取              while ((count = fis.read(buffer, 0, buffer.length)) != -1) {                  // 写入                  zos.write(buffer, 0, count);              }              zos.closeEntry(); // 释放资源          }      }

记得用完zip要close

转载于:https://www.cnblogs.com/zhousiwei/p/10625933.html

你可能感兴趣的文章
获取TrustedInstaller
查看>>
图论全解(二版)
查看>>
DFS之城堡问题
查看>>
Poco Reactor Demo
查看>>
Linux:安装Zookeeper
查看>>
怎样去写线程安全的代码(Java)
查看>>
C++函数默认参数
查看>>
GIT之分支管理
查看>>
C# Socket学习笔记一
查看>>
关闭Debut.Log
查看>>
Spring中bean的scope详解
查看>>
Django实战(2):创建第一个模型类
查看>>
mysql -- 基础语句
查看>>
RabbitMQ 实现远程过程调用RPC
查看>>
文件的打开方式
查看>>
swift开发网络篇—NSURLConnection基本使用
查看>>
android调用照相机拍照获取照片并做简单剪裁
查看>>
学习笔记之cocos2d-x2.1.1实现修改plist文件数据,用TinyXml解析XML
查看>>
C++学有余力的大一同学的学习拓展
查看>>
02springmvc在springboot里面的操作
查看>>