ZipInputStream.getNextEntry возвращает ноль в некоторых файлах zip

У меня есть простой код для извлечения zip-файлов, он работал нормально, как и ожидалось, но во время теста я попробовал свой код с некоторыми zip-файлами (шрифты, значки и шаблоны, которые я скачал из Интернета), просто чтобы убедиться, что он должен извлечь любые zip-файлы при условии, что он не работает с некоторыми файлами zip, вот минимизированный код для восстановления этой проблемы:

package com.test.mytest;

import java.io.FileInputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;

public class ZipExtractTest {

    public static final String ZIP_FILE = "/Users/XXXXX/Downloads/janne.zip";

    public static void main(String[]args) {
        unzipFile(ZIP_FILE);
        unzipStream(ZIP_FILE);
    }

    public static void unzipFile(String zipName) {
        try {

            ZipFile zf = new ZipFile(zipName);

            Enumeration ent = zf.entries();

            while(ent.hasMoreElements()) {
                System.out.println(ent.nextElement());
            }

        } catch(Exception e) {
            System.out.println(e);
        }
    }

    public static void unzipStream(String zipName) {
        try {
            ZipInputStream zis = new ZipInputStream(new FileInputStream(zipName));
            ZipEntry ze = zis.getNextEntry();

            if(ze == null) {
                System.out.println("unable to get first entry from zip file");
                zis.close();
                return;
            }

            while(ze != null) {
                System.out.println("Entry Found: " + ze);
                ze = zis.getNextEntry();
            }

            zis.closeEntry();
            zis.close();

        } catch(Exception e) {
            System.out.println(e);
        }
    }
}

на самом деле в моем реальном приложении я должен извлечь zip-файлы с помощью inputsreams. В приведенном выше коде я пытаюсь извлечь "janne.zip» Я скачал этот файл сhttp://www.iconian.com/fonts/janne.zip Я могу извлечь его с помощью любого zip-инструмента и на удивление черезunzipFile (String zipName) " метод, но с помощью метода unzipStream (String zipName)

ZipEntry ze = zis.getNextEntry();

возвращает ноль

любая помощь будет оценена

Ответы на вопрос(3)

Ваш ответ на вопрос