java中GZIP压缩解压类使用实例
当我们客户端与服务端进行数据传输时需要走流量,为了节省流量我们常常需要写一个压缩类对数据进行压缩。
实例代码:
代码如下 | 复制代码 |
importjava.io.ByteArrayInputStream; importjava.io.ByteArrayOutputStream; importjava.io.IOException; importjava.util.zip.GZIPInputStream; importjava.util.zip.GZIPOutputStream;
/** * GZIP压缩解压类 */ publicclassMessageGZIP {
privatestaticString encode ="utf-8";//"ISO-8859-1"
publicString getEncode() { returnencode; }
/* * 设置 编码,默认编码:UTF-8 */ public void setEncode(String encode) { MessageGZIP.encode = encode; }
/* * 字符串压缩为字节数组 */ public static byte[] compressToByte(String str){ if (str == null || str.length() == 0) { return null; } ByteArrayOutputStream out = new ByteArrayOutputStream(); GZIPOutputStream gzip; try { gzip = new GZIPOutputStream(out); gzip.write(str.getBytes(encode)); gzip.close(); } catch (IOException e) { e.printStackTrace(); } return out.toByteArray(); }
/* * 字符串压缩为字节数组 */ public static byte[] compressToByte(String str,String encoding){ if (str == null || str.length() == 0) { return null; } ByteArrayOutputStream out = new ByteArrayOutputStream(); GZIPOutputStream gzip; try { gzip = new GZIPOutputStream(out); gzip.write(str.getBytes(encoding)); gzip.close(); } catch (IOException e) { e.printStackTrace(); } return out.toByteArray(); }
/* * 字节数组解压缩后返回字符串 */ public static String uncompressToString(byte[] b) { if (b == null || b.length == 0) { return null; } ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayInputStream in = new ByteArrayInputStream(b);
try { GZIPInputStream gunzip = new GZIPInputStream(in); byte[] buffer = new byte[256]; int n; while ((n = gunzip.read(buffer)) >= 0) { out.write(buffer, 0, n); } } catch (IOException e) { e.printStackTrace(); } return out.toString(); }
/* * 字节数组解压缩后返回字符串 */ publicstaticString uncompressToString(byte[] b, String encoding) { if(b ==null|| b.length ==0) { returnnull; } ByteArrayOutputStream out =newByteArrayOutputStream(); ByteArrayInputStream in =newByteArrayInputStream(b);
try{ GZIPInputStream gunzip =newGZIPInputStream(in); byte[] buffer =newbyte[256]; intn; while((n = gunzip.read(buffer)) >=0) { out.write(buffer,0, n); } returnout.toString(encoding); }catch(IOException e) { e.printStackTrace(); } returnnull; } } |
恋爱进行时九游版
恋爱进行时九游版是一款以模拟恋爱玩法为核心的角色扮演手游,精
皇室对决fr(Null’s Royale)
皇室对决fr,即皇室战争的私服变态版本,在该版本中玩家能够拥
养了个猫联机版游戏
养了个猫小游戏一个猫咪主题的模拟经营类型的手游,在游戏中我那
模拟山羊收获日小米版
模拟山羊收获日小米版是一个极其魔性的手机游戏,在游戏中玩家将
女配逆袭之素衣
女配逆袭之素衣是一款恋爱养成冒险的一款游戏,可以角色扮演,在