org.apache.poi.openxml4j.util

## Class ZipInputStreamZipEntrySource

- java.lang.Object
- - org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, ZipEntrySource

      public class ZipInputStreamZipEntrySource
      extends java.lang.Object
      implements ZipEntrySource

  Provides a way to get at all the ZipEntries from a ZipInputStream, as many times as required. Allows a ZipInputStream to be treated much like a ZipFile, for a price in terms of memory. Be sure to call `close()` as soon as you're done, to free up that memory!

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ZipInputStreamZipEntrySource(ZipArchiveThresholdInputStream inp)` Reads all the entries from the ZipInputStream into memory, and don't close (since POI 4.0.1) the source stream.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Indicates we are done with reading, and resources may be freed
    `java.util.Enumeration<? extends org.apache.commons.compress.archivers.zip.ZipArchiveEntry>` | `getEntries()` Returns an Enumeration of all the Entries
    `org.apache.commons.compress.archivers.zip.ZipArchiveEntry` | `getEntry(java.lang.String path)` Return an entry by its path
    `java.io.InputStream` | `getInputStream(org.apache.commons.compress.archivers.zip.ZipArchiveEntry zipEntry)` Returns an InputStream of the decompressed data that makes up the entry
    `boolean` | `isClosed()` Has close been called already?

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ZipInputStreamZipEntrySource

          public ZipInputStreamZipEntrySource(ZipArchiveThresholdInputStream inp)
                                       throws java.io.IOException

      Reads all the entries from the ZipInputStream into memory, and don't close (since POI 4.0.1) the source stream. We'll then eat lots of memory, but be able to work with the entries at-will.
      Throws:
        `java.io.IOException`

  - ### Method Detail

    - #### getEntries

          public java.util.Enumeration<? extends org.apache.commons.compress.archivers.zip.ZipArchiveEntry> getEntries()

      Description copied from interface: `ZipEntrySource`
      Returns an Enumeration of all the Entries
      Specified by:
        `getEntries` in interface `ZipEntrySource`

    - #### getInputStream

          public java.io.InputStream getInputStream(org.apache.commons.compress.archivers.zip.ZipArchiveEntry zipEntry)

      Description copied from interface: `ZipEntrySource`
      Returns an InputStream of the decompressed data that makes up the entry
      Specified by:
        `getInputStream` in interface `ZipEntrySource`

    - #### close

          public void close()
                     throws java.io.IOException

      Description copied from interface: `ZipEntrySource`
      Indicates we are done with reading, and resources may be freed
      Specified by:
        `close` in interface `java.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Specified by:
        `close` in interface `ZipEntrySource`
      Throws:
        `java.io.IOException`

    - #### isClosed

          public boolean isClosed()

      Description copied from interface: `ZipEntrySource`
      Has close been called already?
      Specified by:
        `isClosed` in interface `ZipEntrySource`

    - #### getEntry

          public org.apache.commons.compress.archivers.zip.ZipArchiveEntry getEntry(java.lang.String path)

      Description copied from interface: `ZipEntrySource`
      Return an entry by its path
      Specified by:
        `getEntry` in interface `ZipEntrySource`
      Parameters:
        `path` - the path in unix-notation
      Returns:
        the entry or `null` if not found

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.