[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 자바 문서