ZIP文件压缩

2022-10-17,

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

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

《ZIP文件压缩.doc》

下载本文的Word格式文档,以方便收藏与打印。