/** * 数据压缩 * @param data * @return */ public static byte[] dataCompress(byte[] data) { GZIPOutputStream gos; try { ByteArrayInputStream bais = new ByteArrayInputStream(data); ByteArrayOutputStream baos = new ByteArrayOutputStream(); gos = new GZIPOutputStream(baos); byte[] buf = new byte[1024]; int num; while ((num = bais.read(buf)) != -1) { gos.write(buf, 0, num); } gos.finish(); gos.flush(); gos.close(); byte[] output = baos.toByteArray(); return output; } catch (IOException e) { e.printStackTrace(); } return null; } /** * 数据解压缩 * @param data * @return */ public static byte[] dataDecompress(byte[] data){ try { ByteArrayInputStream bais = new ByteArrayInputStream(data); GZIPInputStream gis = new GZIPInputStream(bais); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; int num; while((num=gis.read(buf))!=-1){ baos.write(buf, 0, num); } gis.close(); byte[] ret = baos.toByteArray(); baos.close(); return ret; } catch (IOException e) { e.printStackTrace(); return null; } } public static void main(String[] args) throws Exception { String a = "算法设计阿拉斯加分类啊沙发里的说法 啊大家都是垃圾发了疯啊"; byte[] c = a.getBytes("UTF-8"); System.out.println(c.length); byte[] d = compress(c); System.out.println(d.length); byte[] e = dataDecompress(d); System.out.println(e.length); System.out.println(new String(e,"UTF-8")); }
java中的GZIP压缩学习(二)
这是修改之后的代码可以实现解压和压缩,注意数据的编码
猜你喜欢
转载自zhangwe415.iteye.com/blog/1496793
今日推荐
周排行