Чтение из ZipInputStream в ByteArrayOutputStream

Вероятно, вы пробовали читать zipinputstream из FileInputStream вот так:

ZipInputStream in = new ZipInputStream(new FileInputStream(...));

Это не сработает, так zipoutputstream как zip-архив может содержать .java несколько файлов, и вам нужно core-java указать, какой файл читать.

Вы .java можете использовать java.util.zip.ZipFile и библиотеку, такую java ​​как IOUtils from Apache Commons IO или ByteStreams from Guava, которые помогут openjdk вам скопировать поток.

Пример:

ByteArrayOutputStream out = new ByteArrayOutputStream();
try (ZipFile zipFile = new ZipFile("foo.zip")) {
    ZipEntry zipEntry = zipFile.getEntry("fileInTheZip.txt");

    try (InputStream in = zipFile.getInputStream(zipEntry)) {
        IOUtils.copy(in, out);
    }
}

java

zipinputstream

zipoutputstream

2022-07-24T17:31:04+00:00