GZIP 포맷의 압축은 단순하므로, 압축하고자 하는 데이터가 단일 스트림일 때 더욱 적합하다.
압축 클래스를 사용하는 방법은 간단한다.
GZIPOutputStream이나 ZipOutputStream을 출력 스트림에 덧씌우거나
GZIPInputStream이나 ZipInputStream을 입력 스트림에 덧씌우면 된다.
사용예제
GZIPcompress.java
import java.io.*;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class GZIPcompress {
public static void main(String[] args) throws IOException{
long startTime = System.currentTimeMillis();
BufferedReader in = new BufferedReader(new FileReader(args[0]));
BufferedOutputStream out =
new BufferedOutputStream(
new GZIPOutputStream(
new FileOutputStream("test.gz")));
System.out.println("Writing file");
int c;
while((c=in.read()) != -1)
out.write(c);
in.close();
out.close();
long endTime = System.currentTimeMillis();
System.out.println("압축시간 : " + (endTime - startTime) + " ms");
System.out.println("Reading file");
startTime = System.currentTimeMillis();
BufferedReader in2 =
new BufferedReader(
new InputStreamReader(
new GZIPInputStream(
new FileInputStream("test.gz"))));
BufferedOutputStream out2 = new BufferedOutputStream(
new FileOutputStream("endtest.java"));
String s;
while((s = in2.readLine()) != null) {
System.out.println(s);
out2.write(s.getBytes());
out2.write("\n".getBytes());
}
in2.close();
out2.close();
endTime = System.currentTimeMillis();
System.out.println("복원시간 : " + (endTime - startTime) + " ms");
}
}
'Dev. 자바 > 참고소스' 카테고리의 다른 글
news scroll jquery 소스 (0) | 2013.02.05 |
---|---|
[JAVA] 코딩 표준에 맞는지 검사하기(HashMap, Iterator, Properties,StreamTokenizer) (0) | 2013.01.23 |
[JAVA] File 클래스 디렉토리 목록 작성, 키워드로 검색하기 (0) | 2013.01.23 |
[자바 소스] PL/SQL 자바에서 이용하기 예제 소스 (0) | 2012.09.10 |
[자바 소스] JDBC를 이용한 sqlplus 구현하기! 이름하여 sqlminus~!!! (0) | 2012.09.06 |