用gzip方式进行压缩数据,解压缩数据

来源:互联网 发布:金山网络2016校园招聘 编辑:程序博客网 时间:2024/04/28 07:53

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可以转换成压缩前的对象

原创粉丝点击