在开发过程中遇到一个小需求,将附件中的文件进行压缩,压缩文件以前没怎么接触过,记录下,直接上代码:
/***
* 将附件中的文件压缩
*
* @param filemap
压缩前的文件
* @return map<string,byte[]>
压缩后的文件
*/
private map<string,byte[]> filescompressionzip(map<string,byte[]> filemap){
map<string,byte[]> map = new hashmap();
bytearrayoutputstream bos = new bytearrayoutputstream();
zipoutputstream zip = new zipoutputstream(bos);
try{
zipentry entry = null;
for(map.entry<string,byte[]> en: filemap.entryset()){
entry = new zipentry(en.getkey());
entry.setsize(en.getvalue().length);
zip.putnextentry(entry);
zip.write(en.getvalue());
}
}catch(excepriton e){
logger.error(e.getmessage(),e);
}finally{
try{
zip.closeentry();
}catch(ioexcepriton e){
logger.error(e.getmessage(),e);
}
try{
zip.close();
}catch(ioexcepriton e){
logger.error(e.getmessage(),e);
}
try{
bos.close();
}catch(ioexcepriton e){
logger.error(e.getmessage(),e);
}
}
map.put(system.currenttimemillis()+".zip",bos.tobytearray());
return map;
}
如对本文有疑问, 点击进行留言回复!!
before社区电量是什么意思 Before社区电量获得方法
RecycleView入门详解(教你全面掌握RecycleView用法)
动态权限请求框架RxPermissions(几行代码搞定权限)
URL路径@PathVariable出现点号“.“时值遭截断问题
网友评论