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;
}
                    
                
                
            
        
浙公网安备 33010602011771号