GZIP压缩解压
/*** GZIP壓縮解壓類*/
public class MessageGZIP {private static String encode = "utf-8";//"ISO-8859-1"public String getEncode() {return encode;}/** 設置 編碼,默認編碼: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();}/** 字節數組解壓縮后返回字符串*/public static String uncompressToString(byte[] b, String encoding) {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);}return out.toString(encoding);} catch (IOException e) {e.printStackTrace();}return null;}
}
總結
- 上一篇: GPS导航电文——第三子帧数据解析
- 下一篇: 70 漂亮且极具亲和力的导航菜单设计推荐