2011-01-29 5 views
10

나는 여러 개의 텍스트 파일이있는 상당히 큰 BZ2 파일을 가지고있다. Java를 사용하여 BZ2 파일 내의 특정 파일의 압축을 풀고 즉시 압축을 풀거나 해석 할 수 있습니까? 300MB의 BZ2 파일에 1GB의 텍스트가 포함되어 있다고 가정 해 보겠습니다. 이상적으로, 나는 자바 프로그램이 1 메가 바이트의 BZ2 파일을 읽고, 그것을 즉시 압축을 풀고, 그에 따라 행동하고, 더 많은 데이터를 위해 BZ2 파일을 계속 읽는 것을 말하고 싶다. 그게 가능하니?Java - BZ2 파일을 읽고 압축을 풀다.

감사

+1

'그 possible'가요 - 그래 :) – bestsss

답변

2

개미 프로젝트가 bzip2 라이브러리가 포함되어 있습니다. 어느 클래스가 org.apache.tools.bzip2.CBZip2InputStream입니다. 이 클래스를 사용하여 bzip2 파일의 압축을 즉석에서 압축 할 수 있습니다. 표준 Java InputStream 클래스를 확장합니다.

+0

이 라이브러리는 'didn를 내 bzip2 형식을 인식하지 못합니다. commons-compress를 사용해야했습니다. – suhprano

19

아파치의 commons-compress 라이브러리는 꽤 좋습니다. 여기에 자신의 샘플 페이지의 :

<dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-compress</artifactId> 
    <version>1.10</version> 
</dependency> 

을 그리고 여기 내 폴더의 유틸리티 방법입니다 : 여기 http://commons.apache.org/proper/commons-compress/examples.html

최신 받는다는 스 니펫 것

+1

참고 : 허용되는 형식은 gzip, bzip2, xz, lzma, Pack200, DEFLATE 및 Z입니다. 링크에서 알 수 있듯이 올바른 것이 자동으로 할당됩니다 – Danielson

관련 문제