Java GZIP压缩与解压缩代码实例
这篇文章主要介绍了JavaGZIP压缩与解压缩代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1.GZIP压缩
publicstaticbyte[]compress(Stringstr,Stringencoding){ if(str==null||str.length()==0){ returnnull; } ByteArrayOutputStreamout=newByteArrayOutputStream(); GZIPOutputStreamgzip; try{ gzip=newGZIPOutputStream(out); gzip.write(str.getBytes(encoding)); gzip.close(); }catch(Exceptione){ e.printStackTrace(); } returnout.toByteArray(); }
2.GZIP解压缩
publicstaticbyte[]uncompress(byte[]bytes){ if(bytes==null||bytes.length==0){ returnnull; } ByteArrayOutputStreamout=newByteArrayOutputStream(); ByteArrayInputStreamin=newByteArrayInputStream(bytes); try{ GZIPInputStreamungzip=newGZIPInputStream(in); byte[]buffer=newbyte[256]; intn; while((n=ungzip.read(buffer))>=0){ out.write(buffer,0,n); } }catch(Exceptione){ e.printStackTrace(); } returnout.toByteArray(); }
3.工具代码集合
importjava.io.ByteArrayInputStream; importjava.io.ByteArrayOutputStream; importjava.io.IOException; importjava.util.zip.GZIPInputStream; importjava.util.zip.GZIPOutputStream; publicclassGZIPUtils{ publicstaticfinalStringGZIP_ENCODE_UTF_8="UTF-8"; publicstaticfinalStringGZIP_ENCODE_ISO_8859_1="ISO-8859-1"; publicstaticbyte[]compress(Stringstr,Stringencoding){ if(str==null||str.length()==0){ returnnull; } ByteArrayOutputStreamout=newByteArrayOutputStream(); GZIPOutputStreamgzip; try{ gzip=newGZIPOutputStream(out); gzip.write(str.getBytes(encoding)); gzip.close(); }catch(Exceptione){ e.printStackTrace(); } returnout.toByteArray(); } publicstaticbyte[]compress(Stringstr)throwsIOException{ returncompress(str,GZIP_ENCODE_UTF_8); } publicstaticbyte[]uncompress(byte[]bytes){ if(bytes==null||bytes.length==0){ returnnull; } ByteArrayOutputStreamout=newByteArrayOutputStream(); ByteArrayInputStreamin=newByteArrayInputStream(bytes); try{ GZIPInputStreamungzip=newGZIPInputStream(in); byte[]buffer=newbyte[256]; intn; while((n=ungzip.read(buffer))>=0){ out.write(buffer,0,n); } }catch(Exceptione){ e.printStackTrace(); } returnout.toByteArray(); } publicstaticStringuncompressToString(byte[]bytes,Stringencoding){ if(bytes==null||bytes.length==0){ returnnull; } ByteArrayOutputStreamout=newByteArrayOutputStream(); ByteArrayInputStreamin=newByteArrayInputStream(bytes); try{ GZIPInputStreamungzip=newGZIPInputStream(in); byte[]buffer=newbyte[256]; intn; while((n=ungzip.read(buffer))>=0){ out.write(buffer,0,n); } returnout.toString(encoding); }catch(Exceptione){ e.printStackTrace(); } returnnull; } publicstaticStringuncompressToString(byte[]bytes){ returnuncompressToString(bytes,GZIP_ENCODE_UTF_8); } publicstaticvoidmain(String[]args)throwsIOException{ Strings="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; System.out.println("字符串长度:"+s.length()); System.out.println("压缩后::"+compress(s).length); System.out.println("解压后:"+uncompress(compress(s)).length); System.out.println("解压字符串后::"+uncompressToString(compress(s)).length()); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。