天天看點

java 解zip檔案(ZipInputStream)

 從ZIP檔案中解壓縮和提取資料

1.java.util.zip包提供了資料壓縮與解壓縮所需要的類。ZIP檔案的解壓縮實質上就是從輸入流中讀取資料,Java.util.zip包提供了類ZipInputStream來讀取ZIP檔案。ZipInputStream流的建立與其它輸入流的建立沒什麼兩樣。舉個例子,下面的代碼段建立了一個輸入流來讀取ZIP格式的檔案:java.util.zip包提供了資料壓縮與解壓縮所需要的類。ZIP檔案的解壓縮實質上就是從輸入流中讀取資料。Java.util.zip包提供了類ZipInputStream來讀取ZIP檔案。ZipInputStream流的建立與其它輸入流的建立沒什麼兩樣。舉個例子,下面的代碼段建立了一個輸入流來讀取ZIP格式的檔案:

package zip;

import java.io.*;

import java.util.zip.*;

public class UnZip {

    static final int BUFFER = 2048;

    public static void main(String argv[]) {

        try {

            BufferedOutputStream dest = null;

            FileInputStream fis = new

                                  FileInputStream("D:/project/test/down/down.zip");

            ZipInputStream zis = new

                                 ZipInputStream(new BufferedInputStream(fis));

            ZipEntry entry;

            while ((entry = zis.getNextEntry()) != null) {

                System.out.println("Extracting: " + entry);

                int count;

                byte data[] = new byte[BUFFER];

// write the files to the disk

                FileOutputStream fos = new

                                       FileOutputStream("D:/project/test/unzip/"+entry.getName());

                dest = new

                       BufferedOutputStream(fos, BUFFER);

                while ((count = zis.read(data, 0, BUFFER))

                                != -1) {

                    dest.write(data, 0, count);

                }

                dest.flush();

                dest.close();

            }

            zis.close();

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

2.