[java] 자바에서 압축 파일을 다른 형식으로 변환하기

압축 파일 변환을 위한 Java 프로그래밍

파일 압축은 데이터를 효율적으로 저장하고 전송할 수 있는 방법으로 널리 사용됩니다. 자바를 사용하여 압축 파일의 형식을 변환하는 방법을 알아보겠습니다.

1. 라이브러리 가져오기

먼저, 압축 파일 변환에 사용할 라이브러리를 사용하기 위해 Gradle 또는 Maven을 통해 아래와 같이 의존성을 추가합니다.

dependencies {
    implementation 'org.apache.commons:commons-compress:1.21'
}

이 예제에서는 Apache Commons Compress 라이브러리를 사용합니다.

2. 압축 파일 변환

다음은 Zip 형식의 압축 파일을 다른 형식으로 변환하는 예제 코드입니다. 다른 형식으로 변환하고 싶은 경우 해당 형식에 맞는 라이브러리를 사용하면 됩니다.

import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.ArchiveOutputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.apache.commons.compress.utils.IOUtils;

import java.io.*;

public class ZipConverter {
    public static void convert(String inputZipFile, String outputFormat) throws IOException {
        try (InputStream is = new FileInputStream(inputZipFile);
             ZipArchiveInputStream zis = new ZipArchiveInputStream(is);
             ArchiveOutputStream aos = /* create ArchiveOutputStream based on outputFormat */) {
            ArchiveEntry entry;
            while ((entry = zis.getNextEntry()) != null) {
                aos.putArchiveEntry(/* create new ArchiveEntry based on outputFormat and entry */);
                IOUtils.copy(zis, aos);
                aos.closeArchiveEntry();
            }
        }
    }
}

3. 사용 예

이제 위의 코드를 사용하여 Zip 파일을 다른 형식으로 변환하는 방법을 알아보겠습니다.

public class Main {
    public static void main(String[] args) {
        String inputZipFile = "input.zip";
        String outputFormat = "tar"; // 변경하고 싶은 형식으로 지정

        try {
            ZipConverter.convert(inputZipFile, outputFormat);
            System.out.println("압축 파일 변환 완료: " + inputZipFile + " -> " + outputFormat);
        } catch (IOException e) {
            System.err.println("압축 파일 변환 중 오류 발생: " + e.getMessage());
        }
    }
}

위 코드는 input.zip 파일을 tar 형식으로 변환하는 예시입니다.

이제 자바를 사용하여 압축 파일을 다른 형식으로 변환하는 방법에 대해 알아보았습니다. 필요한 경우 해당하는 라이브러리를 사용하여 원하는 형식으로 변환할 수 있습니다.

참고문헌: