canonical example by Tabnine
public void zipFile(File srcFile, File zipFile) throws IOException { try (FileInputStream fis = new FileInputStream(srcFile); ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile))) { zos.putNextEntry(new ZipEntry(srcFile.getName())); int len; byte[] buffer = new byte[1024]; while ((len = fis.read(buffer)) > 0) { zos.write(buffer, 0, len); } zos.closeEntry(); } }
public static void makeEvilZip(File outputFile) throws IOException { ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(outputFile)); ZipEntry zipEntry = new ZipEntry("../../../../../../../../../../../../../../../tmp/evil.txt"); zipOutputStream.putNextEntry(zipEntry); byte[] output = StringUtils.toUtf8("evil text"); zipOutputStream.write(output); zipOutputStream.closeEntry(); zipOutputStream.close(); } }
public static void zipFolder(String srcFolder, String destZipFile) throws Exception { ZipOutputStream zip = null; FileOutputStream fileWriter = null; fileWriter = new FileOutputStream(destZipFile); zip = new ZipOutputStream(fileWriter); addFolderToZip("", srcFolder, zip); zip.flush(); zip.close(); }
@Override public void close() throws IOException { ZipOutputStream zos = (ZipOutputStream) delegate; zos.flush(); zos.closeEntry(); zos.finish(); zos.close(); }
public void closeEntry() throws IOException { zos.flush(); zos.closeEntry(); } }
public static byte[] zipBytes(String filename, byte[] input) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ZipOutputStream zos = new ZipOutputStream(baos); ZipEntry entry = new ZipEntry(filename); entry.setSize(input.length); zos.putNextEntry(entry); zos.write(input); zos.closeEntry(); zos.close(); return baos.toByteArray(); }
try{ ZipInputStream zip = new ZipInputStream(new FileInputStream(file)); try { FileOutputStream fout = new FileOutputStream(tempFile, false); try{ ZipOutputStream out = new ZipOutputStream(fout); if (!entry.isDirectory()) { log("ignoring " + entry.toString()); ZipEntry outEntry = new ZipEntry(entry.getName()); outEntry.setMethod(entry.getMethod()); outEntry.setComment(entry.getComment()); outEntry.setCompressedSize(bytes.length); out.putNextEntry(outEntry); out.write(bytes); out.closeEntry(); zip.closeEntry(); out.close(); }finally{ fout.close();
buff = new BufferedOutputStream( dest ); out = new ZipOutputStream( buff ); String name = entry.getName(); out.putNextEntry( new ZipEntry( name ) ); out.write( buffer, 0, len ); out.setMethod( ZipOutputStream.DEFLATED ); out.setLevel( Deflater.BEST_COMPRESSION ); out.putNextEntry( new ZipEntry( relativeName ) ); while ( ( len = in.read( buffer ) ) > 0 ) { out.write( buffer, 0, len ); if ( in != null ) { in.close(); out.flush(); out.closeEntry(); out.close(); buff.close();
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(testArchive)); zipOutputStream.setLevel(ZipOutputStream.STORED); ZipEntry zipEntry = new ZipEntry(""+i); zipEntry.setSize(randomArray.length); zipOutputStream.putNextEntry(zipEntry); zipOutputStream.write(randomArray); zipOutputStream.closeEntry(); zipOutputStream.close(); FileOutputStream testOutFileStream = new FileOutputStream(testOutputfile); ZipFile zipFile = new ZipFile(testArchive); Random random = new Random(); int read = -1; while (-1 != (read = inputStream.read(buffer))) { testOutFileStream.write(buffer, 0, read); inputStream.close();
File[] fileList = srcFile.listFiles(); if (fileList == null || fileList.length <= 0) { ZipEntry entry = new ZipEntry(rootPath + '/'); entry.setComment(comment); zos.putNextEntry(entry); zos.closeEntry(); } else { for (File file : fileList) { InputStream is = null; try { is = new BufferedInputStream(new FileInputStream(srcFile)); ZipEntry entry = new ZipEntry(rootPath); entry.setComment(comment); zos.putNextEntry(entry); byte buffer[] = new byte[BUFFER_LEN]; int len; while ((len = is.read(buffer, 0, BUFFER_LEN)) != -1) { zos.write(buffer, 0, len); zos.closeEntry(); } finally { if (is != null) { is.close();
/** * Archives specified file into zip archive. * * @param file File to be archived. * @return Byte array representing zip archive. * @throws IOException In case of input/output exception. */ private byte[] zipFile(File file) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (ZipOutputStream zos = new ZipOutputStream(baos)) { ZipEntry entry = new ZipEntry(file.getName()); zos.putNextEntry(entry); try (FileInputStream in = new FileInputStream(file.getAbsolutePath())) { IOUtils.copy(in, zos); } } return baos.toByteArray(); }
zipout.putNextEntry(new ZipEntry(newPrefix)); zipDirectory(file, newPrefix, zipout, filter); } else { ZipEntry entry = new ZipEntry(prefix + file.getName()); zipout.putNextEntry(entry); InputStream in = new FileInputStream(file); int c; try { while (-1 != (c = in.read(buffer))) { zipout.write(buffer, 0, c); zipout.closeEntry(); } finally { in.close(); zipout.flush();
byte[] buff = new byte[1024 * 50]; final int jVersion = jVersions[version]; try (ZipFile zip = new ZipFile(old); ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(n));) { zos.putNextEntry(new ZipEntry(zipEntry.getName())); if (!zipEntry.isDirectory()) { try (InputStream is = zip.getInputStream(zipEntry)) { if (zipEntry.getName().endsWith(".class")) { zos.write(cw.toByteArray()); } else { for (int c = is.read(buff); c > 0; c = is.read(buff)) { zos.write(buff, 0, c); zos.closeEntry();
private void addFileToZip(ZipOutputStream zos, String filename) throws IOException { FileInputStream fis = new FileInputStream(new File(exportDirName + filename)); ZipEntry ze = new ZipEntry(filename); zos.putNextEntry(ze); int length; byte bytes[] = new byte[1024]; while ((length = fis.read(bytes)) >= 0) zos.write(bytes, 0, length); zos.closeEntry(); fis.close(); }
public static void jarDir(File dir, String relativePath, ZipOutputStream zos) throws IOException { Preconditions.checkNotNull(relativePath, "relativePath"); Preconditions.checkNotNull(zos, "zos"); // by JAR spec, if there is a manifest, it must be the first entry in // the // ZIP. File manifestFile = new File(dir, JarFile.MANIFEST_NAME); ZipEntry manifestEntry = new ZipEntry(JarFile.MANIFEST_NAME); if (!manifestFile.exists()) { zos.putNextEntry(manifestEntry); new Manifest().write(new BufferedOutputStream(zos)); zos.closeEntry(); } else { InputStream is = new FileInputStream(manifestFile); copyToZipStream(is, manifestEntry, zos); } zos.closeEntry(); zipDir(dir, relativePath, zos, true); zos.close(); }
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(outFile)); int bytesRead; byte[] buffer = new byte[1024]; CRC32 crc = new CRC32(); for (File file : listFiles(dirPath)) { BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); crc.reset(); while ((bytesRead = bis.read(buffer)) != -1) { bis = new BufferedInputStream(new FileInputStream(file)); ZipEntry entry = new ZipEntry(file.getName()); entry.setMethod(ZipEntry.STORED); entry.setCompressedSize(file.length()); entry.setSize(file.length()); entry.setCrc(crc.getValue()); zos.putNextEntry(entry); while ((bytesRead = bis.read(buffer)) != -1) { zos.write(buffer, 0, bytesRead); zos.close();
if (zipEntryPathList != null) { for (ZipEntryPath zipEntryPath : zipEntryPathList) { zipEntryPathMap.put(zipEntryPath.zipEntry.getName(), zipEntryPath); needToAddEntryNameList.add(zipEntryPath.zipEntry.getName()); zipOutputStream = new ZipOutputStream(new FileOutputStream(outputZipFullFilename)); if (inputZipFullFilename != null) { zipFile = new ZipFile(inputZipFullFilename); while (enumeration.hasMoreElements()) { ZipEntry zipEntry = enumeration.nextElement(); String zipEntryName = zipEntry.getName(); InputStream inputStream = null; if (zipEntryPathMap.containsKey(zipEntryName)) { if (zipEntryPath.replace) { zipEntry = zipEntryPath.zipEntry; inputStream = new FileInputStream(zipEntryPath.fullFilename); ZipEntryPath zipEntryPath = zipEntryPathMap.get(zipEntryName); ZipEntry zipEntry = zipEntryPath.zipEntry; InputStream inputStream = new FileInputStream(zipEntryPath.fullFilename); if (zipProcessor != null) { inputStream = zipProcessor.zipEntryProcess(zipEntry.getName(), inputStream);
@Test public void testDecompressZip() throws IOException { final File tmpDir = temporaryFolder.newFolder("testDecompressZip"); final File zipFile = new File(tmpDir, testFile.getName() + ".zip"); Assert.assertFalse(zipFile.exists()); try (final ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile))) { out.putNextEntry(new ZipEntry("cool.file")); ByteStreams.copy(new FileInputStream(testFile), out); out.closeEntry(); } try (final InputStream inputStream = CompressionUtils.decompress(new FileInputStream(zipFile), zipFile.getName())) { assertGoodDataStream(inputStream); } }
private static void zipFile(final String path, final File input, final ZipOutputStream zOut) throws IOException { if (input.isDirectory()) { final File[] files = input.listFiles(); if (files != null) { for (final File f : files) { final String childPath = path + input.getName() + (f.isDirectory() ? "/" : ""); zipFile(childPath, f, zOut); } } } else { final String childPath = path + (path.length() > 0 ? "/" : "") + input.getName(); final ZipEntry entry = new ZipEntry(childPath); zOut.putNextEntry(entry); final InputStream fileInputStream = new BufferedInputStream(new FileInputStream(input)); try { IOUtils.copy(fileInputStream, zOut); } finally { fileInputStream.close(); } } }
JarOutputStream target = new JarOutputStream(new FileOutputStream("output.jar"), manifest); add(new File("inputDirectory"), target); target.close(); name += "/"; JarEntry entry = new JarEntry(name); entry.setTime(source.lastModified()); target.putNextEntry(entry); target.closeEntry(); entry.setTime(source.lastModified()); target.putNextEntry(entry); in = new BufferedInputStream(new FileInputStream(source)); if (count == -1) break; target.write(buffer, 0, count); target.closeEntry();