java中GZIP压缩解压类使用实例
java中GZIP压缩解压类使用实例
当我们客户端与服务端进行数据传输时需要走流量,为了节省流量我们常常需要写一个压缩类对数据进行压缩。
实例代码:
importjava.io.ByteArrayInputStream; importjava.io.ByteArrayOutputStream; importjava.io.IOException; importjava.util.zip.GZIPInputStream; importjava.util.zip.GZIPOutputStream; /** *GZIP压缩解压类 */ publicclassMessageGZIP{ privatestaticStringencode="utf-8";//"ISO-8859-1" publicStringgetEncode(){ returnencode; } /* *设置编码,默认编码:UTF-8 */ publicvoidsetEncode(Stringencode){ MessageGZIP.encode=encode; } /* *字符串压缩为字节数组 */ publicstaticbyte[]compressToByte(Stringstr){ if(str==null||str.length()==0){ returnnull; } ByteArrayOutputStreamout=newByteArrayOutputStream(); GZIPOutputStreamgzip; try{ gzip=newGZIPOutputStream(out); gzip.write(str.getBytes(encode)); gzip.close(); }catch(IOExceptione){ e.printStackTrace(); } returnout.toByteArray(); } /* *字符串压缩为字节数组 */ publicstaticbyte[]compressToByte(Stringstr,Stringencoding){ if(str==null||str.length()==0){ returnnull; } ByteArrayOutputStreamout=newByteArrayOutputStream(); GZIPOutputStreamgzip; try{ gzip=newGZIPOutputStream(out); gzip.write(str.getBytes(encoding)); gzip.close(); }catch(IOExceptione){ e.printStackTrace(); } returnout.toByteArray(); } /* *字节数组解压缩后返回字符串 */ publicstaticStringuncompressToString(byte[]b){ if(b==null||b.length==0){ returnnull; } ByteArrayOutputStreamout=newByteArrayOutputStream(); ByteArrayInputStreamin=newByteArrayInputStream(b); try{ GZIPInputStreamgunzip=newGZIPInputStream(in); byte[]buffer=newbyte[256]; intn; while((n=gunzip.read(buffer))>=0){ out.write(buffer,0,n); } }catch(IOExceptione){ e.printStackTrace(); } returnout.toString(); } /* *字节数组解压缩后返回字符串 */ publicstaticStringuncompressToString(byte[]b,Stringencoding){ if(b==null||b.length==0){ returnnull; } ByteArrayOutputStreamout=newByteArrayOutputStream(); ByteArrayInputStreamin=newByteArrayInputStream(b); try{ GZIPInputStreamgunzip=newGZIPInputStream(in); byte[]buffer=newbyte[256]; intn; while((n=gunzip.read(buffer))>=0){ out.write(buffer,0,n); } returnout.toString(encoding); }catch(IOExceptione){ e.printStackTrace(); } returnnull; } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!