欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ZIP文件压缩

程序员文章站 2022-05-24 18:34:02
在开发过程中遇到一个小需求,将附件中的文件进行压缩,压缩文件以前没怎么接触过,记录下,直接上代码: /*** * 将附件中的文件压缩 * * @param fileMap 压缩前的文件 * @return Map 压缩后的文件 */private Map

在开发过程中遇到一个小需求,将附件中的文件进行压缩,压缩文件以前没怎么接触过,记录下,直接上代码:

/***
* 将附件中的文件压缩
*
* @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;
}