ZIPアーカイブは、最も一般的で一般的に使用されている圧縮ファイル形式の1つです。 ZIPファイルを使用する主な理由は、合計ファイルサイズを減らし、複数のファイルを1つのアーカイブとして送信することです。開発者は、ZIPアーカイブ内で圧縮されたファイルからテキスト、画像、さらにはメタデータを抽出できます。この記事では、JavaでZIPアーカイブデータを抽出する方法について説明します。

JavaでZIPファイルからデータを抽出する

以下のトピックについて説明します。

ZIPファイルデータを抽出するJavaAPI

GroupDocs.Parserは、JavaAPIも含む開発者向けのドキュメント解析ソリューションを提供します。この記事の例では、このJavaAPIを使用してZIPファイルデータを抽出するを使用します。さらに、このAPIを使用すると、サポートされているドキュメント形式の長いリストから、画像、生のテキスト、構造化およびフォーマットされたテキスト、メタデータをデータ抽出できます。これらのドキュメント形式には、ワードプロセッシングドキュメント、PDF、プレゼンテーション、スプレッドシート、電子メール、データベース、電子書籍、その他多数が含まれます。

ダウンロードまたは構成

ダウンロードセクションから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ファイルの1つの取得されたテキストを示しています。

 -----------------------------------
 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.ParserforJavaを使用してZIPファイルから画像を抽出することもできます。圧縮ファイル用のデータ抽出Javaアプリケーションの構築を開始します。 APIの詳細については、ドキュメントにアクセスしてください。お問い合わせは、フォーラムまでお問い合わせください。

関連項目