首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

java中的GZIP压缩学习(2)

2012-07-15 
java中的GZIP压缩学习(二)这是修改之后的代码可以实现解压和压缩,注意数据的编码/** * 数据压缩 * @param

java中的GZIP压缩学习(二)
这是修改之后的代码可以实现解压和压缩,注意数据的编码

/** * 数据压缩 * @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"));}

热点排行