[java] 자바에서 압축 해제 후 압축 메타데이터 확인하기

압축 파일에서 데이터를 추출하여 메타데이터를 확인하는 것은 매우 흔한 작업입니다. Java에서는 이를 쉽게 수행할 수 있습니다. 이 블로그 포스트에서는 자바를 사용하여 압축 해제 후 압축 메타데이터를 확인하는 방법을 살펴보겠습니다.

1. 압축 파일 해제하기

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

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class ZipExtractor {
    public static void extract(String zipFilePath, String destDir) {
        byte[] buffer = new byte[1024];
        try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFilePath))) {
            ZipEntry zipEntry = zis.getNextEntry();
            while (zipEntry != null) {
                String fileName = zipEntry.getName();
                File newFile = new File(destDir + File.separator + fileName);
                try (FileOutputStream fos = new FileOutputStream(newFile)) {
                    int len;
                    while ((len = zis.read(buffer)) > 0) {
                        fos.write(buffer, 0, len);
                    }
                }
                zipEntry = zis.getNextEntry();
            }
            zis.closeEntry();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드는 extract 메서드를 사용하여 압축 파일을 해제하는 기능을 제공합니다.

2. 압축 메타데이터 확인하기

압축 해제 후, 각 파일의 메타데이터를 확인하려면 ZipFile 클래스를 사용할 수 있습니다. 아래는 압축 파일의 메타데이터를 확인하는 간단한 예제 코드입니다.

import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class ZipMetadataReader {
    public static void readMetadata(String zipFilePath) {
        try (ZipFile zipFile = new ZipFile(zipFilePath)) {
            Enumeration<? extends ZipEntry> entries = zipFile.entries();
            while (entries.hasMoreElements()) {
                ZipEntry entry = entries.nextElement();
                System.out.println("File name: " + entry.getName());
                System.out.println("Compressed size: " + entry.getCompressedSize());
                System.out.println("Uncompressed size: " + entry.getSize());
                System.out.println("Last modified time: " + entry.getLastModifiedTime());
                // 추가적인 메타데이터 확인
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드는 readMetadata 메서드를 사용하여 압축 파일 내의 각 파일의 메타데이터를 확인하는 기능을 제공합니다.

결론

자바를 사용하여 압축 파일을 해제하고 압축 메타데이터를 확인하는 방법을 살펴보았습니다. 이러한 기능을 사용하여 압축 파일에서 데이터를 추출하고 관련 메타데이터를 확인하는 프로세스를 자동화할 수 있으며, 다양한 응용 프로그램에서 유용하게 활용될 수 있습니다.