ZIP-архивы являются одним из самых популярных и часто используемых форматов сжатых файлов. Основной причиной использования ZIP-файлов является уменьшение общего размера файла и отправка нескольких файлов в виде одного архива. Как разработчик, вы можете извлекать текст, изображения и даже метаданные из файлов, сжатых в ZIP-архивах. В этой статье мы обсудим, как извлекать данные из ZIP-архивов в Java.
Ниже рассматриваются следующие темы:
- Java API для извлечения данных из ZIP-файлов.
- Как извлечь данные из ZIP-файлов с помощью Java.
- Извлечение изображений из файлов в ZIP-файлах в Java
Java API для извлечения данных ZIP-файлов
GroupDocs.Parser предоставляет решение для синтаксического анализа документов для разработчиков, которое также включает Java API. Я буду использовать этот Java API для извлечения данных ZIP-файлов в примерах этой статьи. Кроме того, этот API позволяет извлекать изображения, необработанный текст, структурированный и форматированный текст, а также метаданные из длинного списка поддерживаемых форматов документов. Эти форматы документов включают текстовые документы, PDF, презентации, электронные таблицы, электронные письма, базы данных, электронные книги и многие другие.
Загрузите или настройте
Вы можете загрузить файл JAR из раздела загрузок или просто получить последний репозиторий и конфигурации зависимостей для pom.xml ваших на основе maven приложений Java.
<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>
Как извлечь данные ZIP-файлов в Java
Чтобы извлечь данные из любого файла, вложенного в архив, вам сначала нужно получить все вложенные файлы. После этого вы можете дополнительно извлечь любые данные из каждого файла. Следующие шаги показывают, как извлекать данные из ZIP-файлов и извлекать текст из каждого вложенного файла в Java.
- Загрузите ZIP-архив, используя класс Parser.
- Извлеките коллекцию вложений с помощью метода getContainer.
- Просмотрите вложения для данных каждого вложенного файла.
- Вы можете получить различные данные, используя соответствующие методы класса Parser.
Исходный код показывает, как извлечь данные из ZIP-файлов с помощью Java. В приведенном ниже примере извлекается весь текст из всех файлов в ZIP-архиве.
// Извлечение данных ZIP-архивов в Java
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.");
}
}
Вывод приведенного выше исходного кода показывает извлеченный текст одного из файлов PDF в ZIP-файле.
-----------------------------------
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
Извлечение изображений из файлов в ZIP-файлах в Java
Не ограничиваясь только текстом, вы также можете аналогичным образом извлекать информацию об изображениях. Следующие шаги показывают, как извлечь данные ZIP-файлов и получить информацию об изображениях из каждого вложенного файла.
- Загрузите ZIP-архив, используя класс Parser.
- Извлеките коллекцию вложений с помощью метода getContainer.
- Просмотрите вложения, чтобы получить коллекцию изображений в каждом вложении.
- Теперь просмотрите изображения, чтобы получить информацию о каждом изображении, используя класс PageImageArea.
В следующем исходном коде показано, как извлечь данные изображения из файлов, заключенных в ZIP-файлы на Java.
// Извлечение информации об изображениях из файла в ZIP-архиве на Java
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 без ограничений пробной версии.
Вывод
Короче говоря, вы узнали, как извлекать данные из ZIP-архивов в ваших Java-приложениях. Кроме того, вы также можете извлекать изображения из ZIP-файлов с помощью GroupDocs.Parser for Java. Начните создавать Java-приложение для извлечения данных из сжатых файлов. Чтобы узнать больше об API, посетите документацию. По вопросам обращайтесь к нам через форум.