【发布时间】:2010-06-24 20:16:13
【问题描述】:
在 Java Web 应用程序中,我从各种内存文件(存储为 byte[])创建一个 zip 文件。
以下是关键代码:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
for (//each member of a collection of objects) {
PDFDocument pdfDocument = //generate PDF for this member of the collection;
ZipEntry entry = new ZipEntry(pdfDocument.getFileName());
entry.setSize(pdfDocument.getBody().length);
zos.putNextEntry(entry);
zos.write(pdfDocument.getBody());//pdfDocument.getBody() returns byte[]
zos.closeEntry();
}
zos.close();
问题:在执行“putNextEntry()”行时,我有时会收到“ZipException:重复条目”。
PDF 文件本身肯定会有所不同,但它们可能具有相同的名称(“PDF_File_for_John_Smith.pdf”)。名称冲突是否足以导致此异常?
【问题讨论】:
-
谢谢大家。我添加了代码以在生成文件名时将它们放入哈希中,如果名称已被使用,则附加一个数字。
-
感谢您的提问;它帮助我弄清楚在 java 中编写 zip 文件时应该如何避免重复;)
标签: java zip duplicates zipfile