[java] GZIP 압축 방법을 사용하여 디렉토리를 압축하는 코드 예제

먼저 Java에서 디렉토리를 GZIP으로 압축하는 방법에 대해 알아보겠습니다.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;

public class GzipDirectory {

    public static void main(String[] args) {
        String sourceDir = "path/to/source/dir";
        String targetGzFilePath = "path/to/target/file.gz";

        try {
            File sourceDirFile = new File(sourceDir);
            String[] files = sourceDirFile.list();
            FileOutputStream fos = new FileOutputStream(targetGzFilePath);
            GZIPOutputStream gzipOS = new GZIPOutputStream(fos);

            for (String file : files) {
                File currentFile = new File(sourceDir + File.separator + file);
                FileInputStream fis = new FileInputStream(currentFile);
                byte[] buffer = new byte[1024];
                int len;
                while ((len = fis.read(buffer)) > 0) {
                    gzipOS.write(buffer, 0, len);
                }
                fis.close();
            }
            gzipOS.finish();
            gzipOS.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 예제는 지정된 디렉토리의 모든 파일을 GZIP으로 압축하여 하나의 .gz 파일로 생성하는 Java 코드입니다.

참고문헌: