Class ZipFile.Builder

  • All Implemented Interfaces:
    IOSupplier<ZipFile>
    Enclosing class:
    ZipFile

    public static class ZipFile.Builder
    extends AbstractStreamBuilder<ZipFile,​ZipFile.Builder>
    Builds new ZipFile instances.

    The channel will be opened for reading, assuming the specified encoding for file names.

    See SeekableInMemoryByteChannel to read from an in-memory archive.

    By default the central directory record and all local file headers of the archive will be read immediately which may take a considerable amount of time when the archive is big. The ignoreLocalFileHeader parameter can be set to true which restricts parsing to the central directory. Unfortunately the local file header may contain information not present inside of the central directory which will not be available when the argument is set to true. This includes the content of the Unicode extra field, so setting ignoreLocalFileHeader to true means useUnicodeExtraFields will be ignored effectively.

    Since:
    1.26.0
    • Constructor Detail

      • Builder

        public Builder()
    • Method Detail

      • get

        public ZipFile get()
                    throws java.io.IOException
        Description copied from interface: IOSupplier
        Gets a result.
        Returns:
        a result
        Throws:
        java.io.IOException - if an I/O error occurs.
      • setIgnoreLocalFileHeader

        public ZipFile.Builder setIgnoreLocalFileHeader​(boolean ignoreLocalFileHeader)
        Sets whether to ignore information stored inside the local file header.
        Parameters:
        ignoreLocalFileHeader - whether to ignore information stored inside.
        Returns:
        this.
      • setMaxNumberOfDisks

        public ZipFile.Builder setMaxNumberOfDisks​(long maxNumberOfDisks)
        Sets max number of multi archive disks, default is 1 (no multi archive).
        Parameters:
        maxNumberOfDisks - max number of multi archive disks.
        Returns:
        this.
      • setSeekableByteChannel

        public ZipFile.Builder setSeekableByteChannel​(java.nio.channels.SeekableByteChannel seekableByteChannel)
        The actual channel, overrides any other input aspects like a File, Path, and so on.
        Parameters:
        seekableByteChannel - The actual channel.
        Returns:
        this.
      • setUseUnicodeExtraFields

        public ZipFile.Builder setUseUnicodeExtraFields​(boolean useUnicodeExtraFields)
        Sets whether to use InfoZIP Unicode Extra Fields (if present) to set the file names.
        Parameters:
        useUnicodeExtraFields - whether to use InfoZIP Unicode Extra Fields (if present) to set the file names.
        Returns:
        this.