تعد أرشيفات ZIP واحدة من أكثر تنسيقات الملفات المضغوطة شيوعًا والأكثر استخدامًا. السبب الرئيسي لاستخدام ملفات ZIP هو تقليل الحجم الإجمالي للملف وإرسال ملفات متعددة كأرشيف واحد. بصفتك مطورًا ، يمكنك استخراج النص والصور وحتى البيانات الوصفية من الملفات المضغوطة داخل أرشيفات ZIP. في هذه المقالة ، سنناقش كيفية استخراج بيانات أرشيفات ZIP في Java.

استخراج البيانات من ملفات ZIP في Java

يتم تناول الموضوعات التالية أدناه:

Java API لاستخراج بيانات ملفات ZIP

GroupDocs.Parser يوفر حل تحليل المستندات للمطورين والذي يتضمن أيضًا Java API. سأستخدم Java API لاستخراج بيانات ملفات ZIP في المثال (الأمثلة) من هذه المقالة. بالإضافة إلى ذلك ، تسمح واجهة برمجة التطبيقات هذه باستخراج البيانات من الصور والنص الخام والنص المهيكل والمنسق والبيانات الوصفية من قائمة طويلة من تنسيقات المستندات المدعومة. تتضمن تنسيقات المستندات هذه مستندات معالجة الكلمات و PDF والعروض التقديمية وجداول البيانات ورسائل البريد الإلكتروني وقواعد البيانات والكتب الإلكترونية وغيرها الكثير.

تنزيل أو تكوين

يمكنك تنزيل ملف JAR من قسم التنزيلات ، أو الحصول على أحدث تكوينات المستودعات والتبعية لملف pox.xml لتطبيقات 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 بجافا

لاستخراج البيانات من أي ملف محاط بالأرشيف ، تحتاج أولاً إلى الحصول على جميع الملفات المرفقة. بعد ذلك ، يمكنك استخراج أي نوع من البيانات من كل ملف. توضح الخطوات التالية كيفية استخراج بيانات ملفات ZIP واسترداد النص من كل ملف مغلق في Java.

  • قم بتحميل أرشيف ZIP باستخدام فئة Parser.
  • استخرج مجموعة المرفقات باستخدام طريقة getContainer.
  • اجتياز المرفقات لبيانات كل ملف مرفق.
  • يمكنك الحصول على نوع مختلف من البيانات باستخدام الطرق الخاصة بفئة المحلل اللغوي.

يوضح كود المصدر كيفية استخراج بيانات ملفات ZIP باستخدام Java. يستخرج المثال أدناه النص بالكامل من جميع الملفات الموجودة في أرشيف ZIP.

// استخراج بيانات أرشيفات ZIP في Java
Parser parser = new Parser("path/archive.zip");
// استخرج المرفقات من الحاوية
Iterable<ContainerItem> attachments = parser.getContainer();

// كرر مجموعة من كيانات ZIP
for (ContainerItem item : attachments) {
    // اطبع FILE INFO
    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 مجاني

يمكنك الحصول على ترخيص مؤقت مجاني لاستخدام واجهة برمجة التطبيقات بدون قيود التقييم.

استنتاج

باختصار ، لقد تعلمت كيفية استخراج بيانات أرشيفات ZIP داخل تطبيقات Java الخاصة بك. بالإضافة إلى ذلك ، يمكنك أيضًا استخراج الصور من ملفات ZIP باستخدام GroupDocs.Parser for Java. ابدأ في بناء تطبيق Java الخاص باستخراج البيانات للملفات المضغوطة. لمعرفة المزيد حول API ، قم بزيارة الوثائق. للاستفسارات ، اتصل بنا عبر المنتدى.

أنظر أيضا