[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로 인코딩된 파일을 읽습니다.
자바에서 압축된 파일의 내용을 읽는 방법에 대해 간단한 예제를 제공하였습니다. 참고문서와 레퍼런스를 통해 자세한 내용을 확인할 수 있습니다.