## org.apache.tools.zip
Class ZipFile

    java.lang.Object
      |
      +--org.apache.tools.zip.ZipFile

public class ZipFile
extends java.lang.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.tools.zip.ZipEntry` 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.tools.zip.ZipEntry` instances.
- close is allowed to throw IOException.

Version:
  $Revision: 1.8 $
Author:
  Stefan Bodewig

Constructor Summary
`ZipFile(java.io.File f)` Opens the given file for reading, assuming the platform's native encoding for file names.
`ZipFile(java.io.File f, java.lang.String encoding)` Opens the given file for reading, assuming the specified encoding for file names.
`ZipFile(java.lang.String name)` Opens the given file for reading, assuming the platform's native encoding for file names.
`ZipFile(java.lang.String name, java.lang.String encoding)` Opens the given file for reading, assuming the specified encoding for file names.

Method Summary
`void` `close()` Closes the archive.
`protected static java.util.Date` `fromDosTime(ZipLong l)` Convert a DOS date/time field to a Date object.
`java.lang.String` `getEncoding()` The encoding to use for filenames and the file comment.
`java.util.Enumeration` `getEntries()` Returns all entries as `ZipEntry` instances.
`ZipEntry` `getEntry(java.lang.String name)` Returns a named entry - or `null` if no entry by that name exists.
`java.io.InputStream` `getInputStream(ZipEntry ze)` Returns an InputStream for reading the contents of the given entry.
`protected java.lang.String` `getString(byte[] bytes)` Retrieve a String from the given bytes using the encoding set for this ZipFile.

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

Constructor Detail

### ZipFile

    public ZipFile(java.io.File f)
            throws java.io.IOException

  Opens the given file for reading, assuming the platform's native encoding for file names.

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

### ZipFile

    public ZipFile(java.lang.String name)
            throws java.io.IOException

  Opens the given file for reading, assuming the platform's native encoding for file names.

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

### ZipFile

    public ZipFile(java.lang.String name,
                   java.lang.String encoding)
            throws java.io.IOException

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

Parameters:
  `name` - name of the archive.
  `encoding` - the encoding to use for file names
Throws:
  `java.io.IOException` - if an error occurs while reading the file.

### ZipFile

    public ZipFile(java.io.File f,
                   java.lang.String encoding)
            throws java.io.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
Throws:
  `java.io.IOException` - if an error occurs while reading the file.

Method Detail

### getEncoding

    public java.lang.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 java.io.IOException

  Closes the archive.

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

### getEntries

    public java.util.Enumeration getEntries()

  Returns all entries as `ZipEntry` instances.

  Returns:
    all entries as ZipEntry instances.

### getEntry

    public ZipEntry getEntry(java.lang.String name)

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

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

### getInputStream

    public java.io.InputStream getInputStream(ZipEntry ze)
                                       throws java.io.IOException,
                                              java.util.zip.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.
    `java.io.IOException`
    `java.util.zip.ZipException`

### fromDosTime

    protected static java.util.Date fromDosTime(ZipLong l)

  Convert a DOS date/time field to a Date object.

  Parameters:
    `l` - contains the stored DOS time.
  Returns:
    a Date instance corresponding to the given time.

### getString

    protected java.lang.String getString(byte[] bytes)
                                  throws java.util.zip.ZipException

  Retrieve a String from the given bytes using the encoding set for this ZipFile.

  Parameters:
    `bytes` - the byte array to transform
  Returns:
    String obtained by using the given encoding
  Throws:
    `java.util.zip.ZipException` - if the encoding cannot be recognized.

Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.