List of usage examples for java.util.zip ZipFile getInputStream
public InputStream getInputStream(ZipEntry entry) throws IOException
From source file:nl.strohalm.cyclos.themes.ThemeHandlerImpl.java
/** * Return the properties for the given zip file *///from w w w . j ava 2 s. c om private static Properties properties(final ZipFile zipFile) throws IOException { final ZipEntry propertiesEntry = zipFile.getEntry(THEME_PROPERTIES_ENTRY); if (propertiesEntry == null) { throw new FileNotFoundException(THEME_PROPERTIES_ENTRY); } final Properties properties = new Properties(); properties.load(zipFile.getInputStream(propertiesEntry)); return properties; }
From source file:org.geoserver.data.util.IOUtils.java
public static void decompress(final File inputFile, final File destDir) throws IOException { ZipFile zipFile = new ZipFile(inputFile); Enumeration<? extends ZipEntry> entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = (ZipEntry) entries.nextElement(); InputStream stream = zipFile.getInputStream(entry); if (entry.isDirectory()) { // Assume directories are stored parents first then children. (new File(destDir, entry.getName())).mkdir(); continue; }// w ww . jav a2s . c om File newFile = new File(destDir, entry.getName()); FileOutputStream fos = new FileOutputStream(newFile); try { byte[] buf = new byte[1024]; int len; while ((len = stream.read(buf)) >= 0) saveCompressedStream(buf, fos, len); } catch (IOException e) { zipFile.close(); IOException ioe = new IOException("Not valid COAMPS archive file type."); ioe.initCause(e); throw ioe; } finally { fos.flush(); fos.close(); stream.close(); } } zipFile.close(); }
From source file:org.openo.nfvo.jujuvnfmadapter.common.DownloadCsarManager.java
/** * unzip CSAR packge//from w ww . j ava2s.c o m * @param fileName filePath * @return */ public static int unzipCSAR(String fileName, String filePath) { final int BUFFER = 2048; int status = 0; try { ZipFile zipFile = new ZipFile(fileName); Enumeration emu = zipFile.entries(); int i = 0; while (emu.hasMoreElements()) { ZipEntry entry = (ZipEntry) emu.nextElement(); //read directory as file first,so only need to create directory if (entry.isDirectory()) { new File(filePath + entry.getName()).mkdirs(); continue; } BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(entry)); File file = new File(filePath + entry.getName()); //Because that is random to read zipfile,maybe the file is read first //before the directory is read,so we need to create directory first. File parent = file.getParentFile(); if (parent != null && (!parent.exists())) { parent.mkdirs(); } FileOutputStream fos = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(fos, BUFFER); int count; byte data[] = new byte[BUFFER]; while ((count = bis.read(data, 0, BUFFER)) != -1) { bos.write(data, 0, count); } bos.flush(); bos.close(); bis.close(); if (entry.getName().endsWith(".zip")) { File subFile = new File(filePath + entry.getName()); if (subFile.exists()) { int subStatus = unzipCSAR(filePath + entry.getName(), subFile.getParent() + "/"); if (subStatus != 0) { LOG.error("sub file unzip fail!" + subFile.getName()); status = Constant.UNZIP_FAIL; return status; } } } } status = Constant.UNZIP_SUCCESS; zipFile.close(); } catch (Exception e) { status = Constant.UNZIP_FAIL; e.printStackTrace(); } return status; }
From source file:net.sourceforge.dita4publishers.tools.dxp.DitaDxpHelper.java
/** * Extracts only the local dependencies used from a map from a DXP package. * @param zipFile/*from w w w. jav a 2 s . c om*/ * @param mapEntry * @param outputDir * @param dxpOptions * @throws Exception */ private static void extractMap(ZipFile zipFile, ZipEntry mapEntry, File outputDir, MapBosProcessorOptions dxpOptions) throws Exception { Map<URI, Document> domCache = new HashMap<URI, Document>(); if (!dxpOptions.isQuiet()) log.info("Extracting map " + mapEntry.getName() + "..."); BosConstructionOptions bosOptions = new BosConstructionOptions(log, domCache); InputSource source = new InputSource(zipFile.getInputStream(mapEntry)); File dxpFile = new File(zipFile.getName()); URL baseUri = new URL("jar:" + dxpFile.toURI().toURL().toExternalForm() + "!/"); URL mapUrl = new URL(baseUri, mapEntry.getName()); source.setSystemId(mapUrl.toExternalForm()); Document rootMap = DomUtil.getDomForSource(source, bosOptions, false); DitaBoundedObjectSet mapBos = DitaBosHelper.calculateMapBos(bosOptions, log, rootMap); MapCopyingBosVisitor visitor = new MapCopyingBosVisitor(outputDir); visitor.visit(mapBos); if (!dxpOptions.isQuiet()) log.info("Map extracted."); }
From source file:com.shazam.fork.TestClassScanner.java
private static void getDexClassesFromApk(File apkFile, File outputFolder) { ZipFile zip = null; InputStream classesDexInputStream = null; FileOutputStream fileOutputStream = null; try {// w w w.j a v a 2s . co m zip = new ZipFile(apkFile); int index = 1; String currentDex; while (true) { currentDex = CLASSES_PREFIX + (index > 1 ? index : "") + DEX_EXTENSION; ZipEntry classesDex = zip.getEntry(currentDex); if (classesDex != null) { File dexFileDestination = new File(outputFolder, currentDex); classesDexInputStream = zip.getInputStream(classesDex); fileOutputStream = new FileOutputStream(dexFileDestination); copyLarge(classesDexInputStream, fileOutputStream); index++; } else { break; } } } catch (Exception e) { e.printStackTrace(); } finally { closeQuietly(classesDexInputStream); closeQuietly(fileOutputStream); closeZipQuietly(zip); } }
From source file:Main.java
public static List<File> unzip(File zip, File toDir) throws IOException { ZipFile zf = null; List<File> files = null; try {/* w w w . j ava 2 s. com*/ zf = new ZipFile(zip); files = new ArrayList<File>(); Enumeration<?> entries = zf.entries(); while (entries.hasMoreElements()) { ZipEntry entry = (ZipEntry) entries.nextElement(); if (entry.isDirectory()) { new File(toDir, entry.getName()).mkdirs(); continue; } InputStream input = null; OutputStream output = null; try { File f = new File(toDir, entry.getName()); input = zf.getInputStream(entry); output = new FileOutputStream(f); copy(input, output); files.add(f); } finally { closeQuietly(output); closeQuietly(input); } } } finally { if (zf != null) { zf.close(); } } return files; }
From source file:com.predic8.membrane.examples.DistributionExtractingTestcase.java
public static final void unzip(File zip, File target) throws IOException { ZipFile zipFile = new ZipFile(zip); Enumeration<? extends ZipEntry> entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); if (entry.isDirectory()) { // Assume directories are stored parents first then children. // This is not robust, just for demonstration purposes. new File(target, entry.getName()).mkdir(); } else {//from w w w. j a v a 2 s. c om FileOutputStream fos = new FileOutputStream(new File(target, entry.getName())); try { copyInputStream(zipFile.getInputStream(entry), new BufferedOutputStream(fos)); } finally { fos.close(); } } } zipFile.close(); }
From source file:com.opengamma.util.ZipUtils.java
/** * Unzips a ZIP archive.//from ww w . j a v a 2s . c om * * @param zipFile the archive file, not null * @param outputDir the output directory, not null */ public static void unzipArchive(final ZipFile zipFile, final File outputDir) { ArgumentChecker.notNull(zipFile, "zipFile"); ArgumentChecker.notNull(outputDir, "outputDir"); try { Enumeration<? extends ZipEntry> entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); if (entry.isDirectory()) { FileUtils.forceMkdir(new File(outputDir, entry.getName())); continue; } File entryDestination = new File(outputDir, entry.getName()); entryDestination.getParentFile().mkdirs(); InputStream in = zipFile.getInputStream(entry); OutputStream out = new FileOutputStream(entryDestination); IOUtils.copy(in, out); IOUtils.closeQuietly(in); IOUtils.closeQuietly(out); } zipFile.close(); } catch (IOException ex) { throw new OpenGammaRuntimeException( "Error while extracting file: " + zipFile.getName() + " to: " + outputDir, ex); } }
From source file:Main.java
public static int upZipFile(File zipFile, String folderPath) throws IOException { ZipFile zfile = new ZipFile(zipFile); Enumeration zList = zfile.entries(); ZipEntry ze = null;/*from w ww . j av a2 s. com*/ byte[] buf = new byte[1024]; while (zList.hasMoreElements()) { ze = (ZipEntry) zList.nextElement(); if (ze.isDirectory()) { String dirstr = folderPath + ze.getName(); dirstr = new String(dirstr.getBytes("8859_1"), "GB2312"); File f = new File(dirstr); f.mkdirs(); continue; } OutputStream os = new BufferedOutputStream( new FileOutputStream(getRealFileName(folderPath, ze.getName()))); InputStream is = new BufferedInputStream(zfile.getInputStream(ze)); int readLen = 0; while ((readLen = is.read(buf, 0, 1024)) != -1) { os.write(buf, 0, readLen); } is.close(); os.close(); } zfile.close(); return 0; }
From source file:Main.java
/** * extracts a zip file to the given dir//ww w .j av a 2 s . c o m * @param archive * @param destDir * @throws IOException * @throws ZipException * @throws Exception */ public static void extractZipArchive(File archive, File destDir) throws ZipException, IOException { if (!destDir.exists()) { destDir.mkdir(); } ZipFile zipFile = new ZipFile(archive); Enumeration<? extends ZipEntry> entries = zipFile.entries(); byte[] buffer = new byte[16384]; int len; while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); String entryFileName = entry.getName(); File dir = buildDirectoryHierarchyFor(entryFileName, destDir); if (!dir.exists()) { dir.mkdirs(); } if (!entry.isDirectory()) { BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(new File(destDir, entryFileName))); BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(entry)); while ((len = bis.read(buffer)) > 0) { bos.write(buffer, 0, len); } bos.flush(); bos.close(); bis.close(); } } }