码迷,mamicode.com
首页 > 移动开发 > 详细

Android解压缩ZIP / GZIP数据(基于InflaterInputStream实现)

时间:2015-02-13 16:34:02      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

在实际的项目代码使用过程中,发现如果用Java类库标准指定的GZIPInputStream读取压缩数据解压不能稳定工作,原因不明。反而使用InflaterInputStream可以替代GZIPInputStream稳定、正常工作,现在把基于InflaterInputStream的zip\gzip解压代码工具方法给出:


public static byte[] decompress(byte[] compress) throws Exception {
		ByteArrayInputStream bais = new ByteArrayInputStream(compress);
		InflaterInputStream iis = new InflaterInputStream(bais);

		ByteArrayOutputStream baos = new ByteArrayOutputStream();

		int c = 0;
		byte[] buf = new byte[BUFFER_SIZE];
		while (true) {
			c = iis.read(buf);

			if (c == EOF)
				break;

			baos.write(buf, 0, c);
		}

		baos.flush();

		return baos.toByteArray();
	}

其中,EOF = -1,BUFFER_SIZE值可以根据自身的项目定制。




Android解压缩ZIP / GZIP数据(基于InflaterInputStream实现)

标签:

原文地址:http://blog.csdn.net/zhangphil/article/details/43795125

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!