热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java打包多文件成zip

packagecom.zh.java.util;importlombok.extern.slf4j.slf4j;importjava.io.file;importjava.

package com.zh.java.util;
import lombok.extern.slf4j.slf4j;
import java.io.file;
import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.util.list;
import java.util.zip.zipentry;
import java.util.zip.zipoutputstream;
import static org.springframework.util.streamutils.buffer_size;
/**
* author: zh
* desc: 压缩包工具类
* date: created in 2018/5/19 13:51
*/
@slf4j
public class ziputil {
/**
* 把文件集合打成zip压缩包
* @param srcfiles 压缩文件集合
* @param zipfile zip文件名
* @throws runtimeexception 异常
*/
public static void tozip(list srcfiles, file zipfile) throws runtimeexception {
long start = system.currenttimemillis();
if(zipfile == null){
log.error("压缩包文件名为空!");
return;
}
if(!zipfile.getname().endswith(".zip")){
log.error("压缩包文件名异常,zipfile={}", zipfile.getpath());
return;
}
zipoutputstream zos = null;
try {
fileoutputstream out = new fileoutputstream(zipfile);
zos = new zipoutputstream(out);
for (file srcfile : srcfiles) {
byte[] buf = new byte[buffer_size];
zos.putnextentry(new zipentry(srcfile.getname()));
int len;
fileinputstream in = new fileinputstream(srcfile);
while ((len = in.read(buf)) != -1) {zos.write(buf, 0, len);
}
zos.setcomment("我是注释");
zos.closeentry();
in.close();
out.close();
}
long end = system.currenttimemillis();
log.info("压缩完成,耗时:" + (end - start) + " ms");
} catch (exception e) {
log.error("ziputil tozip exception, ", e);
throw new runtimeexception("zipfile error from ziputils", e);
} finally {
if (zos != null) {
try {zos.close();
} catch (ioexception e) {log.error("ziputil tozip close exception, ", e);
}
}
}
}
}

推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有