gzip压缩和解压缩

1,压缩和解压缩是功过GZIP,
压缩
如:public byte[] yasuo(byte[] byteData){
byte[] bytes = null;
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
try {
GZIPOutputStream gzip=new GZIPOutputStream(byteArrayOutputStream);
gzip.write(byteData);
gzip.finish();
gzip.close();
byteArrayOutputStream.flush();
byteArrayOutputStream.close();
return byteArrayOutputStream.toByteArray();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return bytes;
}
}
首先需要建立压缩的输出流,然后建立GZIPOutputStream,最后通过GZIP的write的方法,将字符串写入到压缩的输出流中。
2解压缩,是通过输入流和输出流和GZIPInputStream
如:public byte[] jiaya(byte[] bytedata){
byte[] bytes=new byte[1024];
byte[] byte1=null;
int num=0;
ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(bytedata);
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
try {
GZIPInputStream gzip=new GZIPInputStream(byteArrayInputStream);
while((num=gzip.read(bytes,0,bytes.length))!=-1){
//System.out.println("num:"+num);
byteArrayOutputStream.write(bytes,0,num);//通过设置长度这样可以避免出现□方框方框的乱码
}

gzip.close();

byteArrayInputStream.close();
byteArrayOutputStream.flush();
byteArrayOutputStream.close();
return byteArrayOutputStream.toByteArray();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return byte1;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值