Проблема при создании zip-файла с несколькими записями в java - PullRequest
1 голос
/ 03 августа 2011

Кто-нибудь знает, что не так с этим кодом для создания zip-файла, содержащего несколько записей

    private File zipAttachments(List<File> licenses) throws IOException
    {
        byte[] buf = new byte[1024];
        File licenseZip = new File("license.zip");
        FileOutputStream fos = new FileOutputStream(licenseZip);
        ZipOutputStream zip = new ZipOutputStream(fos);
        for(File license:licenses)
        {
            ZipEntry zipEntry = new ZipEntry(license.getName());
            FileInputStream in = new FileInputStream(license);
            zip.putNextEntry(zipEntry);
            int len;
            while ((len = in.read(buf)) > 0)
            {
                zip.write(buf, 0, len);
            }
            zip.closeEntry();
            in.close();
        }
        zip.close();

        return licenseZip;
    }

, а стек равен

java.util.zip.ZipException: ZIP file must have at least one entry
        at java.util.zip.ZipOutputStream.finish(ZipOutputStream.java:304)
        at java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:146)
        at java.util.zip.ZipOutputStream.close(ZipOutputStream.java:321)

, но я совершенно уверен, что параметр параметров лицензийне пустой список, значит ли это, что я создаю zip-записи?

1 Ответ

2 голосов
/ 03 августа 2011

Я думаю, что вы пропустите это как первые строки вашего метода:

if (licenses.isEmpty())
    throw new IllegalArgumentException("licenses is empty");
...