用gzip方式進行壓縮數據,解壓縮數據

1.壓縮數據,並返回byte[]

 /**
  * 讀取數據,並且用gzip方式壓縮數據,返回btye[]數組
  *
  * @author 常寬
  * @param List
  *            需要壓縮的結合
  * @date 2010年7月19日
  * @return byte[] 返回的字節數組集合
  * @param
  */
 public byte[] getBytesByInfcardCdlog(List list) {

  byte[] buf = null;
  try {
   ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 構造一個字節輸出流
   GZIPOutputStream gzip = new GZIPOutputStream(baos);
   ObjectOutputStream oos = new ObjectOutputStream(gzip); // 構造一個類輸出流
   oos.writeObject(list); // 寫這個對象
   oos.flush();
   oos.close();
   gzip.flush();
   gzip.close();
   baos.flush();
   baos.close();
   buf = baos.toByteArray(); // 從這個地層字節流中把傳輸的數組給一個新的數組
   } catch (Exception ex) {
   ex.printStackTrace();
  }
  return buf;
 }

 

2.解壓縮:返回Object對象

ByteArrayInputStream inPutStream = new ByteArrayInputStream(types); // 構造一個字節輸出流
   GZIPInputStream gzip = new GZIPInputStream(inPutStream);
   ObjectInputStream ois = new ObjectInputStream(gzip);
   // 轉成對象
   Object obj = ois.readObject();

3.obj可以轉換成壓縮前的對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章