ZIP 档案是最流行和最常用的压缩文件格式之一。使用 ZIP 文件的主要原因是减少总文件大小并将多个文件作为单个存档发送。作为开发人员,您可以从 ZIP 存档中压缩的文件中提取文本、图像甚至元数据。在本文中,我们将讨论如何在 Java 中提取 ZIP 档案数据。
以下主题涵盖以下内容:
用于提取 ZIP 文件数据的 Java API
GroupDocs.Parser 为开发人员提供文档解析解决方案,其中还包含 Java API。我将在本文的示例中使用这个 Java API 来提取 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 文件之一的检索文本。
-----------------------------------
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 的更多信息,请访问 文档。如有疑问,请通过 论坛 联系我们。