Java 接口返回的数据量比较大,压缩为字节流返回给前端调用。


注意 使用的编码与解压使用的编码一致

1.压缩

/**
 *Title: compress
 *Description:
 *@param str
 *@return byte[]
  */
 public static byte[] compress(String str) {
  if (str ==null || str.length() ==0) {
   return null;
   }
   ByteArrayOutputStream out =new ByteArrayOutputStream();
   try {
    GZIPOutputStream gzip = new GZIPOutputStream(out);
    gzip.write(str.getBytes("utf-8"));
    gzip.close();
    return out.toByteArray();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  return null;
  
 }

 

2.解压

/**
 *Title: uncompressToString
 *Description:解压缩
 *@param bytes
 *@return
  */
 public static String uncompressToString(byte[] bytes) {
  return uncompressToString(bytes, "utf-8");
 }
 
 public static String uncompressToString(byte[] bytes, String encoding) {
  if (bytes == null || bytes.length == 0) {
   return null;
  }
  ByteArrayOutputStream out = new ByteArrayOutputStream();
  ByteArrayInputStream in = new ByteArrayInputStream(bytes); 
   try {
    GZIPInputStream ungzip = new GZIPInputStream(in);
    byte[] buffer = new byte[256];
    int n;
    while ((n = ungzip.read(buffer)) >= 0) {
     out.write(buffer, 0, n);
    }
    return out.toString(encoding);
    } catch (IOException e) { 
     WebServiceLog.error(e);
    }
    return null;
 }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM