List of usage examples for java.util.zip ZipInputStream read
public int read(byte b[]) throws IOException
b.length
bytes of data from this input stream into an array of bytes. From source file:org.cirdles.webServices.calamari.PrawnFileHandlerService.java
public static String extract(File inFile, File destination) throws IOException { File outFile = null;//from ww w.ja va 2s . com OutputStream out = null; ZipInputStream zis = null; try { //open infile for reading zis = new ZipInputStream(new FileInputStream(inFile)); ZipEntry entry = null; //checks first entry exists if ((entry = zis.getNextEntry()) != null) { String outFilename = entry.getName(); outFile = new File(destination, outFilename); try { //open outFile for writing out = new FileOutputStream(outFile); byte[] buff = new byte[2048]; int len = 0; while ((len = zis.read(buff)) > 0) { out.write(buff, 0, len); } } finally { //close outFile if (out != null) out.close(); } } } finally { //close zip file if (zis != null) zis.close(); } return outFile.getPath(); }
From source file:com.plotsquared.iserver.util.FileUtils.java
/** * Add files to a zip file/*from w ww. j a v a 2s . co m*/ * * @param zipFile Zip File * @param files Files to add to the zip * @param delete If the original files should be deleted * @throws Exception If anything goes wrong */ public static void addToZip(final File zipFile, final File[] files, final boolean delete) throws Exception { Assert.notNull(zipFile, files); if (!zipFile.exists()) { if (!zipFile.createNewFile()) { throw new RuntimeException("Couldn't create " + zipFile); } } final File temporary = File.createTempFile(zipFile.getName(), ""); //noinspection ResultOfMethodCallIgnored temporary.delete(); if (!zipFile.renameTo(temporary)) { throw new RuntimeException("Couldn't rename " + zipFile + " to " + temporary); } final byte[] buffer = new byte[1024 * 16]; // 16mb ZipInputStream zis = new ZipInputStream(new FileInputStream(temporary)); ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile)); ZipEntry e = zis.getNextEntry(); while (e != null) { String n = e.getName(); boolean no = true; for (File f : files) { if (f.getName().equals(n)) { no = false; break; } } if (no) { zos.putNextEntry(new ZipEntry(n)); int len; while ((len = zis.read(buffer)) > 0) { zos.write(buffer, 0, len); } } e = zis.getNextEntry(); } zis.close(); for (File file : files) { InputStream in = new FileInputStream(file); zos.putNextEntry(new ZipEntry(file.getName())); int len; while ((len = in.read(buffer)) > 0) { zos.write(buffer, 0, len); } zos.closeEntry(); in.close(); } zos.close(); temporary.delete(); if (delete) { for (File f : files) { f.delete(); } } }
From source file:Main.java
public static void unzip(InputStream is, String dir) throws IOException { File dest = new File(dir); if (!dest.exists()) { dest.mkdirs();//from www . j a v a 2 s .co m } if (!dest.isDirectory()) throw new IOException("Invalid Unzip destination " + dest); if (null == is) { throw new IOException("InputStream is null"); } ZipInputStream zip = new ZipInputStream(is); ZipEntry ze; while ((ze = zip.getNextEntry()) != null) { final String path = dest.getAbsolutePath() + File.separator + ze.getName(); String zeName = ze.getName(); char cTail = zeName.charAt(zeName.length() - 1); if (cTail == File.separatorChar) { File file = new File(path); if (!file.exists()) { if (!file.mkdirs()) { throw new IOException("Unable to create folder " + file); } } continue; } FileOutputStream fout = new FileOutputStream(path); byte[] bytes = new byte[1024]; int c; while ((c = zip.read(bytes)) != -1) { fout.write(bytes, 0, c); } zip.closeEntry(); fout.close(); } }
From source file:de.uni_hildesheim.sse.ant.versionReplacement.PluginVersionReplacer.java
/** * Unpacks an existing JAR/Zip archive.//from w w w .j a v a2 s.c om * * @param zipFile The Archive file to unzip. * @param outputFolder The destination folder where the unzipped content shall be saved. * @see <a href="http://www.mkyong.com/java/how-to-decompress-files-from-a-zip-file/"> * http://www.mkyong.com/java/how-to-decompress-files-from-a-zip-file/</a> */ private static void unZipIt(File zipFile, File outputFolder) { byte[] buffer = new byte[1024]; try { // create output directory is not exists File folder = outputFolder; if (folder.exists()) { FileUtils.deleteDirectory(folder); } 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, fileName); // create all non exists folders // else you will hit FileNotFoundException for compressed folder new File(newFile.getParent()).mkdirs(); if (!ze.isDirectory()) { FileOutputStream fos = new FileOutputStream(newFile); int len; while ((len = zis.read(buffer)) > 0) { fos.write(buffer, 0, len); } fos.close(); } ze = zis.getNextEntry(); } zis.closeEntry(); zis.close(); } catch (IOException ex) { ex.printStackTrace(); } }
From source file:Main.java
public static void unzip(final InputStream input, final File destFolder) { try {/* w w w.jav a 2s . co m*/ byte[] buffer = new byte[4096]; int read; ZipInputStream is = new ZipInputStream(input); ZipEntry entry; while ((entry = is.getNextEntry()) != null) { if (!entry.isDirectory()) { String fileName = entry.getName(); File fileFolder = destFolder; int lastSep = entry.getName().lastIndexOf(File.separatorChar); if (lastSep != -1) { String dirPath = fileName.substring(0, lastSep); fileFolder = new File(fileFolder, dirPath); fileName = fileName.substring(lastSep + 1); } fileFolder.mkdirs(); File file = new File(fileFolder, fileName); FileOutputStream os = new FileOutputStream(file); while ((read = is.read(buffer)) != -1) { os.write(buffer, 0, read); } os.flush(); os.close(); } } is.close(); } catch (Exception ex) { throw new RuntimeException("Cannot unzip stream to " + destFolder.getAbsolutePath(), ex); } }
From source file:net.sf.jasperreports.samples.wizards.SampleNewWizard.java
public static void unpackArchive(File theFile, File targetDir, IProgressMonitor monitor, Set<String> cpaths, Set<String> lpaths) { byte[] buffer = new byte[1024]; ZipInputStream zis = null; try {/* w w w . ja v a 2s. co m*/ zis = new ZipInputStream(new FileInputStream(theFile)); ZipEntry ze = zis.getNextEntry(); while (ze != null) { File file = new File(targetDir, File.separator + ze.getName()); new File(file.getParent()).mkdirs(); String fname = file.getName(); if (ze.isDirectory()) { if (fname.equals("src")) cpaths.add(ze.getName()); } else { FileOutputStream fos = new FileOutputStream(file); int len; while ((len = zis.read(buffer)) > 0) fos.write(buffer, 0, len); fos.close(); } if (file.getParentFile().getName().equals("lib") && (fname.endsWith(".jar") || fname.endsWith(".zip"))) lpaths.add(ze.getName()); if (monitor.isCanceled()) { zis.close(); return; } ze = zis.getNextEntry(); } } catch (IOException e) { e.printStackTrace(); } finally { try { zis.closeEntry(); zis.close(); } catch (IOException e) { e.printStackTrace(); } } }
From source file:org.sakaiproject.kernel.util.FileUtil.java
public static void unpack(InputStream source, File destination) throws IOException { ZipInputStream zin = new ZipInputStream(source); ZipEntry zipEntry = null;//w w w .j a va 2 s . c om FileOutputStream fout = null; try { byte[] buffer = new byte[4096]; while ((zipEntry = zin.getNextEntry()) != null) { long ts = zipEntry.getTime(); // the zip entry needs to be a full path from the // searchIndexDirectory... hence this is correct File f = new File(destination, zipEntry.getName()); LOG.info(" Unpack " + f.getAbsolutePath()); f.getParentFile().mkdirs(); if (!zipEntry.isDirectory()) { fout = new FileOutputStream(f); int len; while ((len = zin.read(buffer)) > 0) { fout.write(buffer, 0, len); } zin.closeEntry(); fout.close(); } f.setLastModified(ts); } } finally { try { fout.close(); } catch (Exception ex) { LOG.warn("Exception closing file output stream", ex); } try { zin.close(); } catch (Exception ex) { LOG.warn("Exception closing file input stream", ex); } } }
From source file:net.ftb.util.FileUtils.java
public static void backupExtract(String zipLocation, String outputLocation) { Logger.logInfo("Extracting (Backup way)"); byte[] buffer = new byte[1024]; ZipInputStream zis = null; ZipEntry ze;//ww w.j a va2 s . c o m try { File folder = new File(outputLocation); if (!folder.exists()) { folder.mkdir(); } zis = new ZipInputStream(new FileInputStream(zipLocation)); ze = zis.getNextEntry(); while (ze != null) { File newFile = new File(outputLocation, ze.getName()); newFile.getParentFile().mkdirs(); if (!ze.isDirectory()) { FileOutputStream fos = new FileOutputStream(newFile); int len; while ((len = zis.read(buffer)) > 0) { fos.write(buffer, 0, len); } fos.flush(); fos.close(); } ze = zis.getNextEntry(); } } catch (IOException ex) { Logger.logError("Error while extracting zip", ex); } finally { try { zis.closeEntry(); zis.close(); } catch (IOException e) { } } }
From source file:org.deeplearning4j.util.ArchiveUtils.java
/** * Extracts files to the specified destination * @param file the file to extract to/*w w w .ja va 2s . c o m*/ * @param dest the destination directory * @throws IOException */ public static void unzipFileTo(String file, String dest) throws IOException { File target = new File(file); if (!target.exists()) throw new IllegalArgumentException("Archive doesnt exist"); FileInputStream fin = new FileInputStream(target); int BUFFER = 2048; byte data[] = new byte[BUFFER]; if (file.endsWith(".zip")) { //getFromOrigin the zip file content ZipInputStream zis = new ZipInputStream(fin); //getFromOrigin the zipped file list entry ZipEntry ze = zis.getNextEntry(); while (ze != null) { String fileName = ze.getName(); File newFile = new File(dest + File.separator + fileName); log.info("file unzip : " + newFile.getAbsoluteFile()); //createComplex all non exists folders //else you will hit FileNotFoundException for compressed folder new File(newFile.getParent()).mkdirs(); FileOutputStream fos = new FileOutputStream(newFile); int len; while ((len = zis.read(data)) > 0) { fos.write(data, 0, len); } fos.close(); ze = zis.getNextEntry(); } zis.closeEntry(); zis.close(); } else if (file.endsWith(".tar.gz") || file.endsWith(".tgz")) { BufferedInputStream in = new BufferedInputStream(fin); GzipCompressorInputStream gzIn = new GzipCompressorInputStream(in); TarArchiveInputStream tarIn = new TarArchiveInputStream(gzIn); TarArchiveEntry entry = null; /** Read the tar entries using the getNextEntry method **/ while ((entry = (TarArchiveEntry) tarIn.getNextEntry()) != null) { log.info("Extracting: " + entry.getName()); /** If the entry is a directory, createComplex the directory. **/ if (entry.isDirectory()) { File f = new File(dest + File.separator + entry.getName()); f.mkdirs(); } /** * If the entry is a file,write the decompressed file to the disk * and close destination stream. **/ else { int count; FileOutputStream fos = new FileOutputStream(dest + File.separator + entry.getName()); BufferedOutputStream destStream = new BufferedOutputStream(fos, BUFFER); while ((count = tarIn.read(data, 0, BUFFER)) != -1) { destStream.write(data, 0, count); } destStream.flush(); IOUtils.closeQuietly(destStream); } } /** Close the input stream **/ tarIn.close(); } else if (file.endsWith(".gz")) { GZIPInputStream is2 = new GZIPInputStream(fin); File extracted = new File(target.getParent(), target.getName().replace(".gz", "")); if (extracted.exists()) extracted.delete(); extracted.createNewFile(); OutputStream fos = FileUtils.openOutputStream(extracted); IOUtils.copyLarge(is2, fos); is2.close(); fos.flush(); fos.close(); } target.delete(); }
From source file:ZipFileIO.java
/** * Extract zip file to destination folder. * // w w w . j a v a 2 s . c o m * @param file * zip file to extract * @param destination * destinatin folder */ public static void extract(File file, File destination) throws IOException { ZipInputStream in = null; OutputStream out = null; try { // Open the ZIP file in = new ZipInputStream(new FileInputStream(file)); // Get the first entry ZipEntry entry = null; while ((entry = in.getNextEntry()) != null) { String outFilename = entry.getName(); // Open the output file if (entry.isDirectory()) { new File(destination, outFilename).mkdirs(); } else { out = new FileOutputStream(new File(destination, outFilename)); // Transfer bytes from the ZIP file to the output file byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } // Close the stream out.close(); } } } finally { // Close the stream if (in != null) { in.close(); } if (out != null) { out.close(); } } }