java apache压缩多个文件大小_Java压缩多个文件并导出
packagecom.m2plat.puhui.utils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;import java.io.*;importjava.util.zip.ZipEntry;importjava.util.zip.ZipOutputStream;/*** 文件压缩工具类
* Created by xiangzh on 2018/11/20.*/
public classZipUtils {private static Logger logger = LoggerFactory.getLogger(ZipUtils.class);privateZipUtils(){
}public static void doCompress(String srcFile, String zipFile) throwsIOException {
doCompress(new File(srcFile), newFile(zipFile));
}/*** 文件压缩
*@paramsrcFile 目录或者单个文件
*@paramzipFile 压缩后的ZIP文件*/
public static void doCompress(File srcFile, File zipFile) throwsIOException {
ZipOutputStream out= null;try{
out= new ZipOutputStream(newFileOutputStream(zipFile));
doCompress(srcFile, out);
}catch(Exception e) {throwe;
}finally{
out.close();//记得关闭资源
}
}public static void doCompress(String filelName, ZipOutputStream out) throwsIOException{
doCompress(newFile(filelName), out);
}public static void doCompress(File file, ZipOutputStream out) throwsIOException{
doCompress(file, out,"");
}public static void doCompress(File inFile, ZipOutputStream out, String dir) throwsIOException {if( inFile.isDirectory() ) {
File[] files=inFile.listFiles();if (files!=null && files.length>0) {for(File file : files) {
String name=inFile.getName();if (!"".equals(dir)) {
name= dir + "/" +name;
}
ZipUtils.doCompress(file, out, name);
}
}
}else{
ZipUtils.doZip(inFile, out, dir);
}
}public static void doZip(File inFile, ZipOutputStream out, String dir) throwsIOException {
String entryName= null;if (!"".equals(dir)) {
entryName= dir + "/" +inFile.getName();
}else{
entryName=inFile.getName();
}
ZipEntry entry= newZipEntry(entryName);
out.putNextEntry(entry);int len = 0;byte[] buffer = new byte[1024];
FileInputStream fis= newFileInputStream(inFile);while ((len = fis.read(buffer)) > 0) {
out.write(buffer,0, len);
out.flush();
}
out.closeEntry();
fis.close();
}public static void doZip(InputStream in ,ZipOutputStream out, String entryName) throwsIOException {
logger.info("---添加InputStream到压缩文件,InputStream大小:{}",in.available());
ZipEntry entry= newZipEntry(entryName);
out.putNextEntry(entry);int len = 0;byte[] buffer = new byte[1024*5];while ((len = in.read(buffer)) > 0) {
out.write(buffer,0, len);
out.flush();
}
out.closeEntry();
in.close();
}public static void main(String[] args) throwsIOException {
doCompress("D:/excel/puhui/1", "D:/附件.zip");
}
}
java apache压缩多个文件大小_Java压缩多个文件并导出相关推荐
- java中字符串压缩成bcd码_Java 压缩 / 解压缩字符串
Java使用压缩库为常规压缩提供了Deflater类.它还提供了DeflaterOutputStream,它使用Deflater类通过压缩(压缩)数据流,然后将压缩后的数据写入另一个输出流来过滤数据流 ...
- java 监听窗口是否改变_JAVA项目监听文件是否发生变化
一.spring容器都初始化完成之后做操作 packagecom.bijian.study.listener;importorg.springframework.beans.factory.annot ...
- Java获取文档页数_java准确读取word文件页数
由于本人在做一个网上打印网站,遇到了一个需求是"准确读取word文件页数,从而实现计费功能",通过很长时间的学习.查资料后,终于解决了这个问题,因此把方法写出来,方便有同样需求的人 ...
- 小白也会Java软件打包EXE(直接生成一个exe安装文件)
前言:Java软件程序以其跨平台的特性被广泛使用于各类操作系统中,目前有部分需求是需要将Java程序打包成EXE可执行文件,可以实现在任意一台Windows系统下安装使用,而不需要冗余的资源文件,只要 ...
- java下载图片压缩包_java压缩文件和下载图片示例
本文实例为大家分享了java压缩文件和下载图片示例,供大家参考,具体内容如下 主页面index.xml 项目的主页 主页主页 湖南长沙 发布方式一...... 页面内容压缩演示--gzip 下载图片 ...
- java 压缩 空目录_java zip压缩与解压-支持空目录,保留文件修改时间
java zip压缩与解压-支持空目录,保留文件修改时间. 依赖于commons-io,commons-compress [Java]代码 import java.io.BufferedInputSt ...
- java文件压缩与解压_Java实现文件压缩与解压
Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例.(转载自http://www.puiedu. ...
- java如何压缩解压图片_Java实现压缩文件与解压缩文件
由于工作需要,需要将zip的压缩文件进行解压,经过调查发现,存在两个开源的工具包,一个是Apache的ant工具包,另一个就是Java api自带的工具包:但是Java自带的工具包存在问题:如果压缩或 ...
- java zip压缩 加密码_java 压缩成zip文件、解压zip文件(可设置密码)
1.情景展示 java实现将文件夹进行压缩打包的功能及在线解压功能 2.解决方案 方式一:压缩.解压zip 准备工作:slf4j-api.jar org.slf4j slf4j-api 1.7.25 ...
最新文章
- 十折交叉验证10-fold cross validation, 数据集划分 训练集 验证集 测试集
- jquery拓展插件开发
- 【比赛】论如何七天内在研究生电子设计竞赛中拿国奖
- zeekooper集群搭建_How to do - ZooKeeper集群搭建(我见过最详细的完整教学)
- UPLOOKING_APUE
- 机器学习 -- 信息论
- idea样式报错_来自强迫症患者的IDEA设置
- ajax json 403,解决 Ajax 发送 post 请求出现 403 Forbidden 的三种方式
- Alibaba之MySQL宝典_阿里巴巴内部 MySQL宝典 意外流出!极致经典,堪称数据库的天花板...
- python密码传参有特殊字符如何解决_Python为什么我在RSA加密中有特殊字符
- pandas读取csv某一列_让pandas处理大数据速度变快的三个技巧
- linux 下 qserialport waitforreadyread_北师大版初中数学八年级(下)第二章第一节不等关系(精品)...
- Go语言---并发编程goroutine
- 4.1 API : MultinomialNB、GaussianNB、BernoulliNB
- android智能电视直播源抓取教程,求人不如求己,教你自己抓取直播源的方法!...
- Wonderwar-InTouch-配方配置
- 通过Kettle工具解析Json接口数据并且保存到数据库中的详细操作
- 子桓说:被强制996工作制?用这种方法逃离最靠谱
- 怎样将纸质文档转换成图片,然后转换成word文字
- 计算机显示器型号参数单价,飞利浦电脑显示器价格表一览【详解】
热门文章
- R语言ggplot2可视化指定保存到pdf的图像的具体尺寸、保证缩放的一致性:使得绘图元素(文本、点大小等)在设计上都具有相同的绝对大小、设置全局数据点大小、主题格式、设置图像保存的具体尺寸
- R语言optim函数进行函数优化实战(和lm函数进行对比)
- R语言绘图设备dev
- python爬虫自学笔记分析解密_Python爬虫自学系列(七) -- 项目实战篇(一)
- 神经网络(Neural Network)
- Linux 安装Boost
- 学习C++ 丨 类(Classes)的定义与实现!C/C++必学知识点!
- B站《一天学会 MySQL 数据库》学习笔记
- SQLite - 下载安装与使用(Command Line Shell For SQLite)
- Assembly and diploid architecture of an individual human genome via single-molecule technologies