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();