List of usage examples for java.util.zip ZipEntry setMethod
public void setMethod(int method)
From source file:com.taobao.android.builder.tools.zip.ZipUtils.java
public static void rezip(File output, File srcDir, Map<String, ZipEntry> zipEntryMethodMap) throws Exception { if (output.isDirectory()) { throw new IOException("This is a directory!"); }/* ww w . jav a2 s.c o m*/ if (!output.getParentFile().exists()) { output.getParentFile().mkdirs(); } if (!output.exists()) { output.createNewFile(); } List fileList = getSubFiles(srcDir); ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(output)); ZipEntry ze = null; byte[] buf = new byte[1024]; int readLen = 0; for (int i = 0; i < fileList.size(); i++) { File f = (File) fileList.get(i); ze = new ZipEntry(getAbsFileName(srcDir.getPath(), f)); ze.setSize(f.length()); ze.setTime(f.lastModified()); if (zipEntryMethodMap != null) { ZipEntry originEntry = zipEntryMethodMap.get(ze.getName()); if (originEntry != null) { if (originEntry.getMethod() == STORED) { ze.setCompressedSize(f.length()); InputStream in = new BufferedInputStream(new FileInputStream(f)); try { CRC32 crc = new CRC32(); int c; while ((c = in.read()) != -1) { crc.update(c); } ze.setCrc(crc.getValue()); } finally { in.close(); } } ze.setMethod(originEntry.getMethod()); } } zos.putNextEntry(ze); InputStream is = new BufferedInputStream(new FileInputStream(f)); while ((readLen = is.read(buf, 0, 1024)) != -1) { zos.write(buf, 0, readLen); } is.close(); } zos.close(); }
From source file:com.zimbra.cs.zimlet.ZimletUtil.java
private static void addZipEntry(ZipOutputStream out, File file, String path) throws IOException { String name = (path == null) ? file.getName() : path + "/" + file.getName(); if (file.isDirectory()) { for (File f : file.listFiles()) { addZipEntry(out, f, name);/*from www. ja v a 2 s . co m*/ } return; } ZipEntry entry = new ZipEntry(name); entry.setMethod(ZipEntry.STORED); entry.setSize(file.length()); entry.setCompressedSize(file.length()); entry.setCrc(computeCRC32(file)); out.putNextEntry(entry); ByteUtil.copy(new FileInputStream(file), true, out, false); out.closeEntry(); }
From source file:brut.androlib.Androlib.java
private void copyUnknownFiles(File appDir, ZipOutputStream outputFile, Map<String, String> files) throws IOException { File unknownFileDir = new File(appDir, UNK_DIRNAME); // loop through unknown files for (Map.Entry<String, String> unknownFileInfo : files.entrySet()) { File inputFile = new File(unknownFileDir, unknownFileInfo.getKey()); if (inputFile.isDirectory()) { continue; }/*from www. ja v a 2s . c o m*/ ZipEntry newEntry = new ZipEntry(unknownFileInfo.getKey()); int method = Integer.valueOf(unknownFileInfo.getValue()); LOGGER.fine(String.format("Copying unknown file %s with method %d", unknownFileInfo.getKey(), method)); if (method == ZipEntry.STORED) { newEntry.setMethod(ZipEntry.STORED); newEntry.setSize(inputFile.length()); newEntry.setCompressedSize(-1); BufferedInputStream unknownFile = new BufferedInputStream(new FileInputStream(inputFile)); CRC32 crc = BrutIO.calculateCrc(unknownFile); newEntry.setCrc(crc.getValue()); } else { newEntry.setMethod(ZipEntry.DEFLATED); } outputFile.putNextEntry(newEntry); BrutIO.copy(inputFile, outputFile); outputFile.closeEntry(); } }
From source file:nl.nn.adapterframework.compression.ZipWriter.java
public void writeEntryWithCompletedHeader(String filename, Object contents, boolean close, String charset) throws CompressionException, IOException { if (StringUtils.isEmpty(filename)) { throw new CompressionException("filename cannot be empty"); }/*from ww w.jav a 2 s. c o m*/ byte[] contentBytes = null; BufferedInputStream bis = null; long size = 0; if (contents != null) { if (contents instanceof byte[]) { contentBytes = (byte[]) contents; } else if (contents instanceof InputStream) { contentBytes = Misc.streamToBytes((InputStream) contents); } else { contentBytes = contents.toString().getBytes(charset); } bis = new BufferedInputStream(new ByteArrayInputStream(contentBytes)); size = bis.available(); } else { log.warn("contents of zip entry [" + filename + "] is null"); } int bytesRead; byte[] buffer = new byte[1024]; CRC32 crc = new CRC32(); crc.reset(); if (bis != null) { while ((bytesRead = bis.read(buffer)) != -1) { crc.update(buffer, 0, bytesRead); } bis.close(); } if (contents != null) { bis = new BufferedInputStream(new ByteArrayInputStream(contentBytes)); } ZipEntry entry = new ZipEntry(filename); entry.setMethod(ZipEntry.STORED); entry.setCompressedSize(size); entry.setSize(size); entry.setCrc(crc.getValue()); getZipoutput().putNextEntry(entry); if (bis != null) { while ((bytesRead = bis.read(buffer)) != -1) { getZipoutput().write(buffer, 0, bytesRead); } bis.close(); } getZipoutput().closeEntry(); }
From source file:org.apache.sling.reqanalyzer.impl.RequestAnalyzerWebConsole.java
@Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { if (req.getRequestURI().endsWith(RAW_FILE_MARKER) || req.getRequestURI().endsWith(ZIP_FILE_MARKER)) { InputStream input = null; OutputStream output = null; try {//w w w.j av a 2s .co m input = new FileInputStream(this.logFile); output = resp.getOutputStream(); if (req.getRequestURI().endsWith(ZIP_FILE_MARKER)) { ZipOutputStream zip = new ZipOutputStream(output); zip.setLevel(Deflater.BEST_SPEED); ZipEntry entry = new ZipEntry(this.logFile.getName()); entry.setTime(this.logFile.lastModified()); entry.setMethod(ZipEntry.DEFLATED); zip.putNextEntry(entry); output = zip; resp.setContentType("application/zip"); } else { resp.setContentType("text/plain"); resp.setCharacterEncoding("UTF-8"); resp.setHeader("Content-Length", String.valueOf(this.logFile.length())); // might be bigger than } resp.setDateHeader("Last-Modified", this.logFile.lastModified()); IOUtils.copy(input, output); } catch (IOException ioe) { throw new ServletException("Cannot create copy of log file", ioe); } finally { IOUtils.closeQuietly(input); if (output instanceof ZipOutputStream) { ((ZipOutputStream) output).closeEntry(); ((ZipOutputStream) output).finish(); } } resp.flushBuffer(); } else if (req.getRequestURI().endsWith(WINDOW_MARKER)) { if (canOpenSwingGui(req)) { showWindow(); } String target = req.getRequestURI(); target = target.substring(0, target.length() - WINDOW_MARKER.length()); resp.sendRedirect(target); resp.flushBuffer(); } else { super.service(req, resp); } }
From source file:org.apache.tika.server.writer.ZipWriter.java
private static void zipStoreBuffer(ZipArchiveOutputStream zip, String name, byte[] dataBuffer) throws IOException { ZipEntry zipEntry = new ZipEntry(name != null ? name : UUID.randomUUID().toString()); zipEntry.setMethod(ZipOutputStream.STORED); zipEntry.setSize(dataBuffer.length); CRC32 crc32 = new CRC32(); crc32.update(dataBuffer);/* w ww.j a v a 2s .co m*/ zipEntry.setCrc(crc32.getValue()); try { zip.putArchiveEntry(new ZipArchiveEntry(zipEntry)); } catch (ZipException ex) { if (name != null) { zipStoreBuffer(zip, "x-" + name, dataBuffer); return; } } zip.write(dataBuffer); zip.closeArchiveEntry(); }
From source file:org.digidoc4j.impl.bdoc.asic.AsicContainerCreator.java
private ZipEntry getAsicMimeTypeZipEntry(byte[] mimeTypeBytes) { ZipEntry entryMimetype = new ZipEntry(ZIP_ENTRY_MIMETYPE); entryMimetype.setMethod(ZipEntry.STORED); entryMimetype.setSize(mimeTypeBytes.length); entryMimetype.setCompressedSize(mimeTypeBytes.length); CRC32 crc = new CRC32(); crc.update(mimeTypeBytes);/*from www .j a v a2s .co m*/ entryMimetype.setCrc(crc.getValue()); return entryMimetype; }
From source file:org.docx4j.openpackaging.io3.stores.ZipPartStore.java
public void saveBinaryPart(Part part) throws Docx4JException { // Drop the leading '/' String resolvedPartUri = part.getPartName().getName().substring(1); try {/*from w w w .j ava 2 s. c o m*/ byte[] bytes = null; if (((BinaryPart) part).isLoaded()) { bytes = ((BinaryPart) part).getBytes(); } else { if (this.sourcePartStore == null) { throw new Docx4JException("part store has changed, and sourcePartStore not set"); } else if (this.sourcePartStore == this) { // Just use the ByteArray log.debug(part.getPartName() + " is clean"); ByteArray byteArray = partByteArrays.get(part.getPartName().getName().substring(1)); if (byteArray == null) throw new IOException("part '" + part.getPartName() + "' not found"); bytes = byteArray.getBytes(); } else { InputStream is = sourcePartStore.loadPart(part.getPartName().getName().substring(1)); bytes = IOUtils.toByteArray(is); } } // Add ZIP entry to output stream. if (part instanceof OleObjectBinaryPart) { // Workaround: Powerpoint 2010 (32-bit) can't play eg WMV if it is compressed! // (though 64-bit version is fine) ZipEntry ze = new ZipEntry(resolvedPartUri); ze.setMethod(ZipOutputStream.STORED); // must set size, compressed size, and crc-32 ze.setSize(bytes.length); ze.setCompressedSize(bytes.length); CRC32 crc = new CRC32(); crc.update(bytes); ze.setCrc(crc.getValue()); zos.putNextEntry(ze); } else { zos.putNextEntry(new ZipEntry(resolvedPartUri)); } zos.write(bytes); // Complete the entry zos.closeEntry(); } catch (Exception e) { throw new Docx4JException("Failed to put binary part", e); } log.info("success writing part: " + resolvedPartUri); }
From source file:org.infoscoop.service.GadgetResourceService.java
private static void popResource(Map<String, Object> tree, String path, ZipOutputStream zout) throws IOException { if (path.equals("/")) path = ""; for (String key : tree.keySet()) { Object value = tree.get(key); if (key.startsWith("#")) key = key.substring(1);/* www .j a v a 2 s . c o m*/ ZipEntry entry = new ZipEntry(path + key); if (value instanceof Map) { entry.setMethod(ZipEntry.STORED); entry.setSize(0); entry.setCrc(0); // zout.putNextEntry( entry ); popResource((Map<String, Object>) value, path + key + "/", zout); // zout.closeEntry(); } else { byte[] data = (byte[]) tree.get(key); entry.setSize(data.length); zout.putNextEntry(entry); zout.write(data); zout.closeEntry(); } } }
From source file:org.kuali.kfs.module.ar.document.service.impl.DunningLetterServiceImpl.java
/** * This method generates the actual pdf files to print. * * @param mapping/*from w w w. j av a 2 s . c o m*/ * @param form * @param list * @return */ @Override public boolean createZipOfPDFs(byte[] report, ByteArrayOutputStream baos) throws IOException { ZipOutputStream zos = new ZipOutputStream(baos); int bytesRead; byte[] buffer = new byte[1024]; CRC32 crc = new CRC32(); if (ObjectUtils.isNotNull(report)) { BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(report)); crc.reset(); while ((bytesRead = bis.read(buffer)) != -1) { crc.update(buffer, 0, bytesRead); } bis.close(); // Reset to beginning of input stream bis = new BufferedInputStream(new ByteArrayInputStream(report)); ZipEntry entry = new ZipEntry("DunningLetters&Invoices-" + getDateTimeService().toDateStringForFilename(getDateTimeService().getCurrentDate()) + ".pdf"); entry.setMethod(ZipEntry.STORED); entry.setCompressedSize(report.length); entry.setSize(report.length); entry.setCrc(crc.getValue()); zos.putNextEntry(entry); while ((bytesRead = bis.read(buffer)) != -1) { zos.write(buffer, 0, bytesRead); } bis.close(); } zos.close(); return true; }