Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.compress.archivers.zip
Class ZipFile

    java.lang.Object
      org.apache.commons.compress.archivers.zip.ZipFile

    public class ZipFile

extends Object

Replacement for `java.util.ZipFile`.

This class adds support for file name encodings other than UTF-8 (which is required to work on ZIP files created by native zip tools and is able to skip a preamble like the one found in self extracting archives. Furthermore it returns instances of `org.apache.commons.compress.archivers.zip.ZipArchiveEntry` instead of `java.util.zip.ZipEntry`.

It doesn't extend `java.util.zip.ZipFile` as it would have to reimplement all methods anyway. Like `java.util.ZipFile`, it uses RandomAccessFile under the covers and supports compressed and uncompressed entries.

The method signatures mimic the ones of `java.util.zip.ZipFile`, with a couple of exceptions:

- There is no getName method.
- entries has been renamed to getEntries.
- getEntries and getEntry return `org.apache.commons.compress.archivers.zip.ZipArchiveEntry` instances.
- close is allowed to throw IOException.

Constructor Summary
`ZipFile(File f)` Opens the given file for reading, assuming "UTF8" for file names.
`ZipFile(File f, String encoding)` Opens the given file for reading, assuming the specified encoding for file names and scanning for unicode extra fields.
`ZipFile(File f, String encoding, boolean useUnicodeExtraFields)` Opens the given file for reading, assuming the specified encoding for file names.
`ZipFile(String name)` Opens the given file for reading, assuming "UTF8".
`ZipFile(String name, String encoding)` Opens the given file for reading, assuming the specified encoding for file names, scanning unicode extra fields.

Method Summary
`boolean` | `canReadEntryData(ZipArchiveEntry ze)` Whether this class is able to read the given entry.
`void` | `close()` Closes the archive.
`static void` | `closeQuietly(ZipFile zipfile)` close a zipfile quietly; throw no io fault, do nothing on a null parameter
`String` | `getEncoding()` The encoding to use for filenames and the file comment.
`Enumeration` | `getEntries()` Returns all entries.
`Enumeration` | `getEntriesInPhysicalOrder()` Returns all entries in physical order.
`ZipArchiveEntry` | `getEntry(String name)` Returns a named entry - or `null` if no entry by that name exists.
`InputStream` | `getInputStream(ZipArchiveEntry ze)` Returns an InputStream for reading the contents of the given entry.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ZipFile

    public ZipFile(File f)
            throws IOException

  Opens the given file for reading, assuming "UTF8" for file names.

  Parameters:
    `f` - the archive.
  Throws:
    `IOException` - if an error occurs while reading the file.

### ZipFile

    public ZipFile(String name)
            throws IOException

  Opens the given file for reading, assuming "UTF8".

  Parameters:
    `name` - name of the archive.
  Throws:
    `IOException` - if an error occurs while reading the file.

### ZipFile

    public ZipFile(String name,
                   String encoding)
            throws IOException

  Opens the given file for reading, assuming the specified encoding for file names, scanning unicode extra fields.

  Parameters:
    `name` - name of the archive.
    `encoding` - the encoding to use for file names, use null for the platform's default encoding
  Throws:
    `IOException` - if an error occurs while reading the file.

### ZipFile

    public ZipFile(File f,
                   String encoding)
            throws IOException

  Opens the given file for reading, assuming the specified encoding for file names and scanning for unicode extra fields.

  Parameters:
    `f` - the archive.
    `encoding` - the encoding to use for file names, use null for the platform's default encoding
  Throws:
    `IOException` - if an error occurs while reading the file.

### ZipFile

    public ZipFile(File f,
                   String encoding,
                   boolean useUnicodeExtraFields)
            throws IOException

  Opens the given file for reading, assuming the specified encoding for file names.

  Parameters:
    `f` - the archive.
    `encoding` - the encoding to use for file names, use null for the platform's default encoding
    `useUnicodeExtraFields` - whether to use InfoZIP Unicode Extra Fields (if present) to set the file names.
  Throws:
    `IOException` - if an error occurs while reading the file.

Method Detail

### getEncoding

    public String getEncoding()

  The encoding to use for filenames and the file comment.

  Returns:
    null if using the platform's default character encoding.

### close

    public void close()
               throws IOException

  Closes the archive.

  Throws:
    `IOException` - if an error occurs closing the archive.

### closeQuietly

    public static void closeQuietly(ZipFile zipfile)

  close a zipfile quietly; throw no io fault, do nothing on a null parameter

  Parameters:
    `zipfile` - file to close, can be null

### getEntries

    public Enumeration getEntries()

  Returns all entries.

  Entries will be returned in the same order they appear within the archive's central directory.

  Returns:
    all entries as `ZipArchiveEntry` instances

### getEntriesInPhysicalOrder

    public Enumeration getEntriesInPhysicalOrder()

  Returns all entries in physical order.

  Entries will be returned in the same order their contents appear within the archive.

  Returns:
    all entries as `ZipArchiveEntry` instances
  Since:
    Commons Compress 1.1

### getEntry

    public ZipArchiveEntry getEntry(String name)

  Returns a named entry - or `null` if no entry by that name exists.

  Parameters:
    `name` - name of the entry.
  Returns:
    the ZipArchiveEntry corresponding to the given name - or `null` if not present.

### canReadEntryData

    public boolean canReadEntryData(ZipArchiveEntry ze)

  Whether this class is able to read the given entry.

  May return false if it is set up to use encryption or a compression method that hasn't been implemented yet.

  Since:
    Apache Commons Compress 1.1

### getInputStream

    public InputStream getInputStream(ZipArchiveEntry ze)
                               throws IOException,
                                      ZipException

  Returns an InputStream for reading the contents of the given entry.

  Parameters:
    `ze` - the entry to get the stream for.
  Returns:
    a stream to read the entry from.
  Throws:
    `IOException` - if unable to create an input stream from the zipenty
    `ZipException` - if the zipentry uses an unsupported feature

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010 The Apache Software Foundation. All Rights Reserved.