[java] 자바에서 파일을 GZIP 형식으로 압축하기
파일을 GZIP 형식으로 압축해야 하는 경우가 있다. 예를 들어, 파일 전송 중에 대용량 파일을 압축하여 전송 속도를 향상시키거나, 파일을 저장하기 전에 압축하여 디스크 공간을 절약할 수 있다. 이번 글에서는 Java에서 파일을 GZIP 형식으로 압축하는 방법에 대해 살펴보겠다.
1. GZIPOutputStream 사용하기
Java에서 파일을 GZIP 형식으로 압축하려면 GZIPOutputStream
클래스를 사용할 수 있다. 아래는 파일을 GZIP 형식으로 압축하는 예제코드이다.
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;
public class FileGzipExample {
public static void main(String[] args) {
String sourceFile = "input.txt";
String targetFile = "input.txt.gz";
try (FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(targetFile);
GZIPOutputStream gzipOS = new GZIPOutputStream(fos)) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
gzipOS.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
위 코드에서는 GZIPOutputStream
을 사용하여 sourceFile
을 GZIP 형식으로 압축한 후 targetFile
로 출력하는 예제이다.
2. 예외 처리
위 예제코드에서는 파일 처리 시 발생할 수 있는 예외를 처리하기 위해 try-catch-finally
구문을 사용하였다. 파일 처리 시 발생하는 입출력 예외에 대해 적절히 처리하는 것이 중요하다.
3. 마무리
이상으로 Java에서 파일을 GZIP 형식으로 압축하는 방법에 대해 알아보았다. GZIP 형식을 사용하면 파일을 효율적으로 압축하여 다양한 용도로 활용할 수 있다. 파일 압축은 대용량 파일을 다룰 때 유용한 기술이므로, 필요할 때 활용할 수 있도록 숙지해두는 것이 좋다.
참고: Oracle 자바 문서