[java] 자바에서 압축된 파일의 내용을 읽는 방법

자바에서 압축된 파일의 내용을 읽기 위해서는 java.util.zip 패키지를 사용할 수 있습니다. 이 패키지에는 압축 파일을 다루는 클래스들이 포함되어 있습니다.

아래는 자바에서 압축된 파일의 내용을 읽는 예제 코드입니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;


public class ReadCompressedFileExample {
    public static void main(String[] args) {
        String zipFilePath = "path/to/your/compressed/file.zip";
        String entryName = "name/of/the/file/to/read.txt";

        try (ZipFile zipFile = new ZipFile(zipFilePath)) {
            ZipEntry zipEntry = zipFile.getEntry(entryName);
            if (zipEntry != null) {
                BufferedReader reader = new BufferedReader(new InputStreamReader(zipFile.getInputStream(zipEntry), StandardCharsets.UTF_8));

                String line;
                while ((line = reader.readLine()) != null) {
                    System.out.println(line);
                }
                reader.close();
            } else {
                System.out.println("Entry not found: " + entryName);
            }
        } catch (IOException e) {
            System.out.println("Error reading compressed file: " + e.getMessage());
        }
    }
}

위의 예제 코드에서 zipFilePath 변수에는 압축 파일의 경로를, entryName 변수에는 읽고자 하는 압축 해제된 파일의 이름을 지정합니다. 코드는 해당 파일을 압축 파일에서 찾아서 한 줄씩 출력합니다.

이 예제 코드는 java.util.zip.ZipFile을 사용하여 압축 파일을 열고, getEntry() 메소드로 압축 해제된 파일의 ZipEntry를 가져옵니다. 그런 다음 getInputStream() 메소드로 압축 해제된 파일의 입력 스트림을 얻고, BufferedReader를 사용하여 한 줄씩 읽어옵니다.

압축 파일의 내용을 읽기 전에, 반드시 ZipFile 객체와 BufferedReader 객체를 try-with-resources 문을 사용하여 적절히 처리해야 합니다. 이렇게 하면 자동으로 닫히므로 리소스 누수를 방지할 수 있습니다.

주의할 점은 압축 파일과 압축 해제된 파일의 인코딩이 일치해야 한다는 것입니다. 위의 예제 코드에서는 StandardCharsets.UTF_8을 사용하여 UTF-8로 인코딩된 파일을 읽습니다.

자바에서 압축된 파일의 내용을 읽는 방법에 대해 간단한 예제를 제공하였습니다. 참고문서와 레퍼런스를 통해 자세한 내용을 확인할 수 있습니다.

참고문서 및 레퍼런스