В веб-приложении на Java я создаю 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();
Проблема: иногда я получаю «ZipException: повторяющаяся запись» при выполнении строки «putNextEntry ()».
Сами PDF-файлы, безусловно, будут разными, но могут иметь одинаковое имя («PDF_File_for_John_Smith.pdf»). Достаточно ли совпадения имен, чтобы вызвать это исключение?