ZIP压缩

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

/***

  • 将附件中的文件压缩
  • @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;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值