code: public static byte[] gzip(InputStream in, int length) throws UtilException {
  		final ByteArrayOutputStream bos = new ByteArrayOutputStream(length);
  		GZIPOutputStream gos = null;
  		try {
  			gos = new GZIPOutputStream(bos);
  			IoUtil.copy(in, gos);
  		} catch (IOException e) {
  			throw new UtilException(e);
  		} finally {
  			IoUtil.close(gos);
  		}
  		//返回必须在关闭gos后进行，因为关闭时会自动执行finish()方法，保证数据全部写出
  		return bos.toByteArray();
  	}
docs: Gzip压缩文件
  
  @param in 被压缩的流
  @param length 预估长度
  @return 压缩后的字节流
  @throws UtilException IO异常
  @since 4.1.18