[java] 자바에서 XML 파일 압축하기

자바 어플리케이션에서 XML 파일을 압축하고 해제하는 기능은 매우 유용합니다. XML 파일을 압축하면 디스크 공간을 절약하고 파일 전송 시간을 단축할 수 있습니다. 이번 포스트에서는 Java에서 XML 파일을 압축하는 방법과 관련된 내용을 알아보겠습니다.

1. XML 파일 압축하기

XML 파일을 압축하기 위해서는 java.util.zip 패키지를 사용할 수 있습니다. 아래는 XML 파일을 압축하는 간단한 예제 코드입니다.

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class XmlZipper {
    public static void compressXmlFile(String sourceFile, String targetZipFile) {
        try {
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(sourceFile));
            FileOutputStream fos = new FileOutputStream(targetZipFile);
            ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(fos));

            ZipEntry entry = new ZipEntry(sourceFile);
            zos.putNextEntry(entry);

            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = bis.read(buffer)) != -1) {
                zos.write(buffer, 0, bytesRead);
            }
            
            zos.closeEntry();
            zos.close();
            bis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 코드는 compressXmlFile 메소드를 사용하여 XML 파일을 압축합니다. 이 메소드는 sourceFile 매개변수로 전달된 XML 파일을 targetZipFile 매개변수로 전달된 이름으로 압축합니다.

2. XML 파일 압축 해제하기

이제 XML 파일을 압축 해제하는 방법에 대해 알아보겠습니다. 아래는 XML 파일을 압축 해제하는 예제 코드입니다.

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class XmlZipper {
    public static void decompressXmlFile(String sourceZipFile, String targetXmlFile) {
        try {
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(targetXmlFile));
            FileInputStream fis = new FileInputStream(sourceZipFile);
            ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));

            ZipEntry entry = zis.getNextEntry();

            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = zis.read(buffer)) != -1) {
                bos.write(buffer, 0, bytesRead);
            }
            
            bos.close();
            zis.closeEntry();
            zis.close();
            fis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 코드는 decompressXmlFile 메소드를 사용하여 XML 파일을 압축 해제합니다. 이 메소드는 sourceZipFile 매개변수로 전달된 압축된 파일을 targetXmlFile 매개변수로 전달된 이름으로 압축 해제합니다.

이제 위의 예제 코드를 사용하여 XML 파일을 압축하고 해제하는 방법에 대해 알아보았습니다. 이를 통해 Java에서 XML 파일을 효과적으로 관리할 수 있습니다.

참고 자료