안드로이드 압축 해제 ZIP/GZIP 데이터(InflaterInputStream 기반)

794 단어
실제 프로젝트 코드 사용 과정에서 자바 라이브러리 표준으로 지정된 GZIPInputStream으로 압축 데이터를 읽고 압축을 풀면 안정적으로 작동하지 못할 경우 원인이 불분명하다.오히려 Inflater InputStream을 사용하면 GZIPInputStream이 안정적이고 정상적으로 작동하는 것을 대체할 수 있다. 현재는 Inflater InputStream 기반의 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, BUFFERSIZE 값은 자체 항목에 따라 사용자 정의할 수 있습니다.


좋은 웹페이지 즐겨찾기