آرشیو ZIP یکی از محبوب ترین و رایج ترین فرمت های فایل فشرده است. دلیل اصلی استفاده از فایل های ZIP کاهش حجم کل فایل ها و ارسال چندین فایل به صورت یک آرشیو است. به‌عنوان یک توسعه‌دهنده، می‌توانید متن، تصاویر و حتی ابرداده‌ها را از فایل‌هایی که در آرشیوهای ZIP فشرده شده‌اند استخراج کنید. در این مقاله به نحوه استخراج داده های آرشیو ZIP در Java می پردازیم.

استخراج داده ها از فایل های ZIP در جاوا

موضوعات زیر در زیر پوشش داده شده است:

Java API برای استخراج داده های فایل های ZIP

GroupDocs.Parser راه حل تجزیه اسناد را برای توسعه دهندگان فراهم می کند که شامل Java API نیز می شود. من از این API Java برای استخراج داده‌های فایل‌های ZIP در مثال(های) این مقاله استفاده خواهم کرد. به‌علاوه، این API امکان استخراج داده‌ها از تصاویر، متن خام، متن ساختاریافته و قالب‌بندی شده و ابرداده را از فهرست طولانی [فرمت‌های سند پشتیبانی شده6 می‌دهد. این فرمت‌های اسناد شامل اسناد پردازش کلمه، PDF، ارائه‌ها، صفحات گسترده، ایمیل‌ها، پایگاه‌های اطلاعاتی، کتاب‌های الکترونیکی و بسیاری موارد دیگر است.

دانلود یا پیکربندی کنید

می‌توانید فایل JAR را از بخش دانلودها دانلود کنید، یا فقط آخرین پیکربندی‌های مخزن و وابستگی را برای pom.xml برنامه‌های Java مبتنی بر maven خود دریافت کنید.

<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 در جاوا
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 در جاوا
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 خود استخراج کنید. علاوه بر این، می‌توانید با استفاده از GroupDocs.Parser for Java، تصاویر را از فایل‌های ZIP استخراج کنید. شروع به ساخت برنامه Java استخراج داده خود برای فایل های فشرده کنید. برای کسب اطلاعات بیشتر در مورد API، به [اسناد] مراجعه کنید. برای سؤالات، از طریق [فروم 15 با ما تماس بگیرید.

همچنین ببینید