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