Mega Code Archive

 
Categories / Java / File Input Output
 

Unzipps a zip file placed at zipURL to path

/**  * Copyright (c) 2003 Daffodil Software Ltd all rights reserved.  * This program is free software; you can redistribute it and/or modify  * it under the terms of version 2 of the GNU General Public License as  * published by the Free Software Foundation.  * There are special exceptions to the terms and conditions of the GPL  * as it is applied to this software. See the GNU General Public License for more details.  *  * This program is distributed in the hope that it will be useful,  * but WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  * GNU General Public License for more details.  *  * You should have received a copy of the GNU General Public License  * along with this program; if not, write to the Free Software  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  */ import java.io.*; import java.util.zip.*; /**  * This class is used to make zip file of the XML file,BLOB.lob and CLOB.lob  * so that compacted files can be transferred over the network. Besides it, this  * class contains method for unzipping it.  */ public class ZipHandler {     /**      * makes a zip file named <xmlFileName> from <xmlURL> at path <zipURL>      * @param zipURL      * @param xmlURL      * @param xmlFileName      */     public static void makeZip(String zipURL, String xmlURL, String xmlFileName) throws        IOException    {        FileOutputStream fos = new FileOutputStream(new File(zipURL));        ZipOutputStream zos = new ZipOutputStream(fos); //         zos.setLevel();        FileInputStream fis = new FileInputStream(xmlURL);        zos.putNextEntry(new ZipEntry(xmlFileName+".xml"));        writeInOutputStream(fis,zos);        String bpath = "c:\\";        FileInputStream fisBLOB = createInputStream(bpath);        zos.putNextEntry(new ZipEntry("blob.lob"));        writeInOutputStream(fisBLOB, zos);        zos.closeEntry();        String cpath = "c:\\";        FileInputStream fisCLOB = createInputStream(cpath);        zos.putNextEntry(new ZipEntry("clob.lob"));        writeInOutputStream(fisCLOB, zos);        zos.closeEntry();        fis.close();        fisCLOB.close();        fisBLOB.close();        zos.close();        fos.close();    }     /**      * unzipps a zip file placed at <zipURL> to path <xmlURL>      * @param zipURL      * @param xmlURL      */     public static void unZip(String zipURL, String xmlURL) throws IOException     {         FileOutputStream fosBLOB = new FileOutputStream(new File("c:\\"));         FileOutputStream fosCLOB = new FileOutputStream(new File("c:\\"));         FileInputStream fis = new FileInputStream(new File(zipURL));         ZipInputStream zis = new ZipInputStream(fis);         FileOutputStream fos = new FileOutputStream(xmlURL);         ZipEntry ze = zis.getNextEntry();         ExtractZip(zis, fos, fosBLOB, fosCLOB, ze);         ze = zis.getNextEntry();         ExtractZip(zis, fos, fosBLOB, fosCLOB, ze);         ze = zis.getNextEntry();         ExtractZip(zis, fos, fosBLOB, fosCLOB, ze);         fos.flush();         fis.close();         fos.close();         fosCLOB.close();         fosBLOB.close();         zis.close();         }     private static void ExtractZip(ZipInputStream zis, FileOutputStream fos,                                    FileOutputStream fosBLOB,                                    FileOutputStream fosCLOB, ZipEntry ze) throws         IOException {         if (ze.getName().equalsIgnoreCase("blob.lob"))           writeInOutputStream(zis, fosBLOB);         else if (ze.getName().equalsIgnoreCase("clob.lob"))         writeInOutputStream(zis, fosCLOB);         else           writeInOutputStream(zis, fos);         }     private static void writeInOutputStream(InputStream is,                                             OutputStream os) throws         IOException {             byte[] buf = new byte[1024];             int len = 0;       while ( (len = is.read(buf)) > 0)             {           os.write(buf, 0, len);             }         }     /**      * makes a zip file named <xmlFileName> from <xmlURL> at path <zipURL>      * @param zipURL      * @param xmlURL      * @param xmlFileName      */     public static void makeStructZip(String zipURL, String xmlURL, String xmlFileName) throws         IOException         {         FileOutputStream fos = new FileOutputStream(new File(zipURL));         ZipOutputStream zos = new ZipOutputStream(fos); //         zos.setLevel();         FileInputStream fis = new FileInputStream(xmlURL);         zos.putNextEntry(new ZipEntry(xmlFileName+".xml"));         writeInOutputStream(fis,zos);         zos.closeEntry();         fis.close();         zos.close();             }     /**      * unzipps a zip file placed at <zipURL> to path <xmlURL>      * @param zipURL      * @param xmlURL      */     public static void unStructZip(String zipURL, String xmlURL) throws IOException         {         FileInputStream fis = new FileInputStream(new File(zipURL));         ZipInputStream zis = new ZipInputStream(fis);         FileOutputStream fos = new FileOutputStream(xmlURL);         ZipEntry ze = zis.getNextEntry();         writeInOutputStream(zis,fos);         fos.flush();         fis.close();         fos.close();         zis.close();     }     private static FileInputStream createInputStream(String bpath) throws IOException{       FileInputStream fis = null;       try       {           fis = new FileInputStream(bpath);       }       catch (FileNotFoundException ex)       {           FileOutputStream temp = new FileOutputStream(bpath);           fis = new FileInputStream(bpath);       }       return fis;     } }