ZIP 아카이브는 가장 널리 사용되는 압축 파일 형식 중 하나입니다. ZIP 파일을 사용하는 주된 이유는 전체 파일 크기를 줄이고 여러 파일을 단일 아카이브로 보내기 위함입니다. 개발자는 ZIP 아카이브 내에서 압축된 파일에서 텍스트, 이미지 및 메타데이터까지 추출할 수 있습니다. 이 기사에서는 자바에서 ZIP 아카이브 데이터를 추출하는 방법에 대해 설명합니다.

Java의 ZIP 파일에서 데이터 추출

다음 주제는 아래에서 다룹니다.

ZIP 파일 데이터를 추출하는 Java API

GroupDocs.Parser는 Java API도 포함하는 개발자를 위한 문서 파싱 솔루션을 제공합니다. 이 기사의 예에서 이 Java API를 사용하여 ZIP 파일 데이터 추출을 사용합니다. 또한 이 API를 사용하면 지원되는 문서 형식의 긴 목록에서 이미지, 원시 텍스트, 구조화되고 형식이 지정된 텍스트, 메타데이터를 추출할 수 있습니다. 이러한 문서 형식에는 워드 프로세서 문서, PDF, 프레젠테이션, 스프레드시트, 이메일, 데이터베이스, eBook 등이 포함됩니다.

다운로드 또는 구성

다운로드 섹션에서 JAR 파일을 다운로드하거나 maven 기반 Java 애플리케이션의 pom.xml에 대한 최신 저장소 및 종속성 구성을 얻을 수 있습니다.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>21.2</version> 
</dependency>

Java에서 ZIP 파일 데이터를 추출하는 방법

아카이브에 포함된 파일에서 데이터를 추출하려면 먼저 포함된 모든 파일을 가져와야 합니다. 그런 다음 각 파일에서 모든 종류의 데이터를 추가로 추출할 수 있습니다. 다음 단계는 ZIP 파일 데이터를 추출하고 Java에 포함된 각 파일에서 텍스트를 검색하는 방법을 보여줍니다.

  • Parser 클래스를 사용하여 ZIP 아카이브를 로드합니다.
  • getContainer 메서드를 사용하여 첨부 파일 모음을 추출합니다.
  • 동봉된 각 파일의 데이터에 대한 첨부 파일을 탐색합니다.
  • Parser 클래스의 각 메소드를 사용하여 다른 종류의 데이터를 얻을 수 있습니다.

소스 코드는 Java를 사용하여 ZIP 파일 데이터를 추출하는 방법을 보여줍니다. 아래 예는 ZIP 아카이브 내의 모든 파일에서 전체 텍스트를 추출합니다.

// Java에서 ZIP 아카이브 데이터 추출
Parser parser = new Parser("path/archive.zip");
// 컨테이너에서 첨부 파일 추출
Iterable<ContainerItem> attachments = parser.getContainer();

// ZIP 엔터티 컬렉션을 반복합니다.
for (ContainerItem item : attachments) {
    // 파일 정보 인쇄
    System.out.println("-----------------------------------");
    System.out.println("Name: " + item.getName());
    System.out.println("File Size: " + item.getSize() + " Bytes");
    System.out.println("-----------------------------------");

    try {
        Parser attachmentParser = item.openParser();
        TextReader reader = attachmentParser.getText();
        System.out.println(reader == null ? "No text" : reader.readToEnd());
    } 
    catch (UnsupportedDocumentFormatException ex) {
        System.out.println("Isn't supported.");
    }
}

위 소스 코드의 출력은 ZIP 파일 내의 PDF 파일 중 하나의 검색된 텍스트를 보여줍니다.

 -----------------------------------
 Name: sample.pdf
 File Size: 33370 Bytes
 -----------------------------------

 Heading

 This is the first paragraph of the sample document that contains some sample
 text, bulleted list, numbered list and more.

    •  Bullet Item 1
    •  Bullet Item 2
    •  Bullet Item 3
 
 This is the second paragraph of the sample document and after this, there is a
 numbered list: 

    1. Numbered Item 1
    2. Numbered Item 2
    3. Numbered Item 3 

Java의 ZIP 파일 내의 파일에서 이미지 추출

텍스트뿐만 아니라 이미지 정보도 유사하게 추출할 수 있습니다. 다음 단계는 ZIP 파일 데이터를 추출하고 동봉된 각 파일에서 이미지 정보를 검색하는 방법을 보여줍니다.

  • Parser 클래스를 사용하여 ZIP 아카이브를 로드합니다.
  • getContainer 메서드를 사용하여 첨부 파일 모음을 추출합니다.
  • 첨부 파일을 탐색하여 각 첨부 파일 내의 이미지 모음을 가져옵니다.
  • 이제 PageImageArea 클래스를 사용하여 이미지를 탐색하여 각 이미지의 정보를 가져옵니다.

다음 소스 코드는 Java에서 ZIP 파일에 포함된 파일에서 이미지 데이터를 추출하는 방법을 보여줍니다.

// Java의 ZIP 아카이브 내 파일에서 이미지 정보 추출
Parser parser = new Parser("path/archive.zip");
// 컨테이너에서 첨부 파일 추출
Iterable<ContainerItem> attachments = parser.getContainer();

// ZIP 엔터티 컬렉션을 반복합니다.
for (ContainerItem item : attachments) {
    try {
        Parser attachmentParser = item.openParser();
        Iterable<PageImageArea> images = attachmentParser.getImages();
        if (images != null) {
            int imageCount = 1;
            for (PageImageArea image : images) {
                // 페이지 인덱스, 직사각형 및 이미지 유형 인쇄:
                System.out.println(String.format("Image# %d \nPage: %d\nFile Type: %s", imageCount, image.getPage().getIndex()+1, image.getFileType()));
                imageCount++;
            }
        }
    } 
    catch (UnsupportedDocumentFormatException ex) {
        System.out.println("Isn't supported.");
    }
}
Image# 1 
Page: 1
File Type: JPEG Image (.jpeg) 

무료 API 라이선스 받기

임시 무료 라이선스 받기 평가 제한 없이 API를 사용할 수 있습니다.

결론

간단히 말해서 Java 애플리케이션 내에서 ZIP 아카이브 데이터를 추출하는 방법을 배웠습니다. 또한 GroupDocs.Parser for Java를 사용하여 ZIP 파일에서 이미지를 추출할 수도 있습니다. 압축 파일용 데이터 추출 Java 애플리케이션 빌드를 시작하십시오. API에 대한 자세한 내용은 문서를 참조하십시오. 문의 사항은 포럼을 통해 문의하십시오.

또한보십시오