public static void unZipIt(String zipFile, String outputFolder){

		byte[] buffer = new byte[1024];

		try{

			//create output directory is not exists
			File folder = new File(outputFolder);
			if(!folder.exists()){
				folder.mkdir();
			}

			//get the zip file content
			ZipInputStream zis = 
					new ZipInputStream(new FileInputStream(zipFile));
			//get the zipped file list entry
			ZipEntry ze = zis.getNextEntry();

			while(ze!=null){

				String fileName = ze.getName();
				File newFile = new File(outputFolder + File.separator + fileName);

				//create all non exists folders
				//else you will hit FileNotFoundException for compressed folder
				if(ze.isDirectory()) 
				{
					new File(newFile.getParent()).mkdirs();
				}
				else
				{
					try{
						FileOutputStream fos = null;
						new File(newFile.getParent()).mkdirs();
						
						//this line usally errors
						fos = new FileOutputStream(newFile);             
						int len;
						while ((len = zis.read(buffer)) > 0){
							fos.write(buffer, 0, len);
						}
						fos.close();   
					}
					catch(Exception e){
						e.printStackTrace(); 
					}
				}
				ze = zis.getNextEntry();
			}

			zis.closeEntry();
			zis.close();
			System.out.println(" *Done*");

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