چگونگي Extract كردن فايل هاي فشرده شده در جاوا

سايت مرجع زبان برنامه نويسي جاوا                               Java.TadbirPoya.ir> Articles> Java SE> Java IO> How To Extract Zip Files in java 

 چگونه مي توان يك فايل Zip شده را از حالت فشرده خارج نمود؟

 

 

تکنولوژيهای جاوا
Java SE
Java EE
Java ME
JasperReports

 

لينك هاي مفيد
تدبيرگران پوياپرداز
دانلود هاي جاوا
آموزش جاوا
بازگشت
خانه

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 شماره مقاله  :   50

      تاريخ ايجاد :      1388/10/21

        تاريخ ويرايش :   1388/10/21

        دفعات بروز رساني :    0 

  نويسنده : سيد علي عبدالهي پور

 

  چگونه در جاوا مي توان يك فايل Zip شده را Extract نمود؟

 

در ادامه مقاله شماره 38 «كه درباره نحوه فشرده سازي فايل ها در جاوا توضيح داده است»، در اين مقاله با ذكر يك نمونه برنامه نحوه Extarct كردن فايل هاي Zip شده را مورد بررسي قرار مي دهيم. مراحل انجام چنين عملي به شرح زير مي باشد:

1- همانطور كه مشخص است، در اين نوع برنامه قرار است با فايل ها كار كنيم و آنها را فشرده نماييم. پس به كتابخانه هاي زير نياز مي باشد:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

2- براي انجام عمليات Extarct كردن فايل هاي Zip شده، به كتابخانه هاي زير نياز داريم:

import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

3- در اين مرحله نام فايل Zip و يك نام براي فايل خروجي «فايل Extact شده» تعيين مي نماييم.

String zipFileName = "compressed.zip";
String extractedFileName = "extracted.txt";

4- در مرحله بعد، ابتدا يك ZipInputStream جهت خواندن محتويات فايل Zip شده و سپس يك OutputStream جهت ايجاد فايل Extarct شده ايجاد مي نماييم:

ZipInputStream inStream = new ZipInputStream(new FileInputStream(zipFileName));
OutputStream outStream = new FileOutputStream(extractedFileName);
 

5- در نهايت به كمك تكه برنامه زير، از ابتداي فايل Zip شده و تا زماني كه به انتهاي فايل نرسيده ايم «مقدار بايت هاي خوانده شده بزرگتر از صفر باشد» داده هاي موجود در فايل را خوانده و در فايل Extarct شده هدف قرار مي دهيم. 

ZipEntry entry;
byte[] buffer = new byte[1024];
int nrBytesRead;

//Get next zip entry and start reading data
if ((entry = inStream.getNextEntry()) != null) {
       while ((nrBytesRead = inStream.read(buffer)) > 0) {
                 outStream.write(buffer, 0, nrBytesRead);
        }

}

در ادامه متن برنامه extractZipFiles.java را كه عمل خارج سازي فايل از حالت فشرده در جاوا انجام مي دهد، مشاهده مي نماييد.

 

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class extractZipFiles {

    /**
     * Extracts a zip file
     */
    public void extractZipFile() {

        try {
            String zipFileName = "compressed.zip";
            String extractedFileName = "extracted.txt";

            //Create input and output streams
            ZipInputStream inStream = new ZipInputStream(new FileInputStream(zipFileName));
            OutputStream outStream = new FileOutputStream(extractedFileName);

            ZipEntry entry;
            byte[] buffer = new byte[1024];
            int nrBytesRead;

            //Get next zip entry and start reading data
            if ((entry = inStream.getNextEntry()) != null) {
                while ((nrBytesRead = inStream.read(buffer)) > 0) {
                    outStream.write(buffer, 0, nrBytesRead);
                }
            }
            //Finish off by closing the streams
            outStream.close();
            inStream.close();

        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new extractZipFiles().extractZipFile();
    }

}
 


 

دانلود برنامه هاي مورد استفاده در اين مقاله

مطالب موجود در اين سايت به جهت ارتقاء سطح علمي برنامه نويسان جاوا تهيه و تنظيم شده است. در صورت تمايل مي توانيد مطالب خود را در جهت اصلاح يا ارتقاء مقالات موجود و يا ايجاد مقالات جديد به آدرس ايميل زير ارسال نماييد.

 JArticles@TadbirPoya.ir

استفاده از مطالب موجود در سايت با ذكر منبع بلامانع است.

Copyright @2008-2009 TadbirPoya.ir Co.All rights reserved