2014년 5월 4일 업데이트
압축 풀 때 디렉토리 못찾는 버그 수정해서 다시 올림.
고친다 고친다 생각만 하다가 오랜만에 로그인한 김에...
java.util.zip.* 관련 클래스를 이용하면 디렉토리나 파일명에 한글이 있을 경우 무참히 깨지며 압축과 해제가 제대로 안된다.
내부적으로 UTF-8 인코딩을 이용해서 스트림을 다루기 때문이라고 하는데, 이때문에 commons-compress 에서 제공하는 컴포넌트를 이용한다.
API는 java.util.zip.* 의 클래스와 거의 유사해서 이용하는데 별도의 학습은 불필요한듯.
아예 아래와 같이 유틸리티 클래스를 만들어두면 더 편하다.
(아래 파일은 압축 풀 때 오류 발생하는 경우 있음. 위에 첨부한 파일이 업데이트 버전입니다.)
사용방법은 다양한데, 아래와 같이 하면 simple과 하위 디렉토리, 파일을 전부 압축해서 E:/test 밑에 simple.zip 파일을 생성한다.
압축 해제는 다음과 같이 할 경우
E:/test 밑에 압축이 풀린다. 또는 아래와 같이 별도의 디렉토리에 압축을 풀 수도 있다.
이외에 charset 을 지정해주거나 압축시 최상위 디렉토리를 압축 파일에 포함할지, 아니면 최상위 디렉토리의 하위디렉토리부터 압축할지도 선택할 수 있다. 소켓을 통한 스트림 전송을 위해서 OutputStream과 InputStream 을 이용할 수도 있다.
'Dev > Java' 카테고리의 다른 글
[Thread] 자바 쓰레드의 resume, suspend, stop 구현 (5) | 2010.05.28 |
---|---|
[JList] 자바 스윙 JList,ListModel, ListCellRenderer 2 (0) | 2010.05.12 |
[JList] 자바 스윙 JList, ListModel, ListCellRenderer 1 (1) | 2010.05.12 |