|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.schlichtherle.util.zip.BasicZipFile
public class BasicZipFile
This class is not intended for public use!
The methods in this class are unsynchronized and
entries
/getEntry(java.lang.String)
enumerate/return ZipEntry
instances which are shared with this class rather than clones
of them.
This may be used by subclasses in order to benefit from the slightly better
performance.
ZipFile
Field Summary | |
---|---|
static String |
DEFAULT_CHARSET
The default character set used for entry names and comments in ZIP compatible files. |
Constructor Summary | |
---|---|
BasicZipFile(File file)
Opens the given file for reading its ZIP contents, assuming "UTF-8" charset for file names. |
|
BasicZipFile(File file,
String charset)
Opens the given file for reading its ZIP contents, assuming the specified charset for file names. |
|
BasicZipFile(File file,
String charset,
boolean preambled,
boolean postambled)
Opens the given file for reading its ZIP contents, assuming the specified charset for file names. |
|
BasicZipFile(ReadOnlyFile rof)
Opens the given read only file for reading its ZIP contents, assuming "UTF-8" charset for file names. |
|
BasicZipFile(ReadOnlyFile rof,
String charset)
Opens the given read only file for reading its ZIP contents, assuming the specified charset for file names. |
|
BasicZipFile(ReadOnlyFile rof,
String charset,
boolean preambled,
boolean postambled)
Opens the given read only file for reading its ZIP contents, assuming the specified charset for file names. |
|
BasicZipFile(String name)
Opens the given file for reading its ZIP contents, assuming "UTF-8" charset for file names. |
|
BasicZipFile(String name,
String charset)
Opens the given file for reading its ZIP contents, assuming the specified charset for file names. |
|
BasicZipFile(String name,
String charset,
boolean preambled,
boolean postambled)
Opens the given file for reading its ZIP contents, assuming the specified charset for file names. |
Method Summary | |
---|---|
boolean |
busy()
Returns true if and only if some input streams are open to
read from this ZIP compatible file. |
void |
close()
Closes the file. |
protected ReadOnlyFile |
createReadOnlyFile(File file)
A factory method called by the constructor to get a read only file to access the contents of the ZIP file. |
protected ZipEntry |
createZipEntry(String name)
A factory method returning a newly created ZipEntry for the given name. |
Enumeration |
entries()
Returns an enumeration of the ZIP entries in this ZIP file. |
String |
getCharset()
Returns the charset to use for entry names and comments. |
InputStream |
getCheckedInputStream(String name)
Equivalent to getInputStream(name, true, true) . |
InputStream |
getCheckedInputStream(ZipEntry entry)
Equivalent to getInputStream(entry.getName(), true, true) instead. |
String |
getComment()
Returns the comment of this ZIP compatible file or null
if no comment exists. |
String |
getEncoding()
Deprecated. Use getCharset() instead. |
ZipEntry |
getEntry(String name)
Returns the ZipEntry for the given name or
null if no entry with that name exists. |
InputStream |
getInputStream(String name)
Equivalent to getInputStream(name, false, true) . |
InputStream |
getInputStream(String name,
boolean inflate)
Deprecated. |
protected InputStream |
getInputStream(String name,
boolean check,
boolean inflate)
Returns an InputStream for reading the inflated or
deflated data of the given entry. |
InputStream |
getInputStream(ZipEntry entry)
Equivalent to getInputStream(entry.getName(), false, true) instead. |
InputStream |
getInputStream(ZipEntry entry,
boolean inflate)
Deprecated. |
InputStream |
getPostambleInputStream()
Returns an InputStream to read the postamble of this ZIP
compatible file. |
long |
getPostambleLength()
Returns the length of the postamble of this ZIP compatible file in bytes. |
InputStream |
getPreambleInputStream()
Returns an InputStream to read the preamble of this ZIP
compatible file. |
long |
getPreambleLength()
Returns the length of the preamble of this ZIP compatible file in bytes. |
long |
length()
Returns the file length of this ZIP compatible file in bytes. |
boolean |
offsetsConsiderPreamble()
Returns true if and only if the offsets in this ZIP file
are relative to the start of the file, rather than the first Local
File Header. |
int |
size()
Returns the number of entries in this ZIP compatible file. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String DEFAULT_CHARSET
Constructor Detail |
---|
public BasicZipFile(String name) throws NullPointerException, FileNotFoundException, ZipException, IOException
name
- name of the file.
NullPointerException
- If name
is null
.
FileNotFoundException
- If the file cannot get opened for reading.
ZipException
- If the file is not ZIP compatible.
IOException
- On any other I/O related issue.public BasicZipFile(String name, String charset) throws NullPointerException, UnsupportedEncodingException, FileNotFoundException, ZipException, IOException
name
- name of the file.charset
- the charset to use for file names
NullPointerException
- If name
or charset
is
null
.
UnsupportedEncodingException
- If charset is not supported by
this JVM.
FileNotFoundException
- If the file cannot get opened for reading.
ZipException
- If the file is not ZIP compatible.
IOException
- On any other I/O related issue.public BasicZipFile(String name, String charset, boolean preambled, boolean postambled) throws NullPointerException, UnsupportedEncodingException, FileNotFoundException, ZipException, IOException
name
- name of the file.charset
- the charset to use for file namespreambled
- If this is true
, then the ZIP compatible
file may have a preamble.
Otherwise, the ZIP compatible file must start with either a
Local File Header (LFH) signature or an End Of Central Directory
(EOCD) Header, causing this constructor to fail fast if the file
is actually a false positive ZIP compatible file, i.e. not
compatible to the ZIP File Format Specification.
This may be used to read Self Extracting ZIP files (SFX), which
usually contain the application code required for extraction in
a preamble.
This parameter is true
by default.postambled
- If this is true
, then the ZIP compatible
file may have a postamble of arbitrary length.
Otherwise, the ZIP compatible file must not have a postamble
which exceeds 64KB size, including the End Of Central Directory
record (i.e. including the ZIP file comment), causing this
constructor to fail fast if the file is actually a false positive
ZIP compatible file, i.e. not compatible to the ZIP File Format
Specification.
This may be used to read Self Extracting ZIP files (SFX) with
large postambles.
This parameter is false
by default.
NullPointerException
- If name
or charset
is
null
.
UnsupportedEncodingException
- If charset is not supported by
this JVM.
FileNotFoundException
- If the file cannot get opened for reading.
ZipException
- If the file is not ZIP compatible.
IOException
- On any other I/O related issue.public BasicZipFile(File file) throws NullPointerException, FileNotFoundException, ZipException, IOException
file
- The file.
NullPointerException
- If file
is null
.
FileNotFoundException
- If the file cannot get opened for reading.
ZipException
- If the file is not ZIP compatible.
IOException
- On any other I/O related issue.public BasicZipFile(File file, String charset) throws NullPointerException, UnsupportedEncodingException, FileNotFoundException, ZipException, IOException
file
- The file.charset
- The charset to use for entry names and comments
- must not be null
!
NullPointerException
- If file
or charset
is null
.
UnsupportedEncodingException
- If charset is not supported by
this JVM.
FileNotFoundException
- If the file cannot get opened for reading.
ZipException
- If the file is not ZIP compatible.
IOException
- On any other I/O related issue.public BasicZipFile(File file, String charset, boolean preambled, boolean postambled) throws NullPointerException, UnsupportedEncodingException, FileNotFoundException, ZipException, IOException
file
- The file.charset
- The charset to use for entry names and comments
- must not be null
!preambled
- If this is true
, then the ZIP compatible
file may have a preamble.
Otherwise, the ZIP compatible file must start with either a
Local File Header (LFH) signature or an End Of Central Directory
(EOCD) Header, causing this constructor to fail fast if the file
is actually a false positive ZIP compatible file, i.e. not
compatible to the ZIP File Format Specification.
This may be used to read Self Extracting ZIP files (SFX), which
usually contain the application code required for extraction in
a preamble.
This parameter is true
by default.postambled
- If this is true
, then the ZIP compatible
file may have a postamble of arbitrary length.
Otherwise, the ZIP compatible file must not have a postamble
which exceeds 64KB size, including the End Of Central Directory
record (i.e. including the ZIP file comment), causing this
constructor to fail fast if the file is actually a false positive
ZIP compatible file, i.e. not compatible to the ZIP File Format
Specification.
This may be used to read Self Extracting ZIP files (SFX) with
large postambles.
This parameter is false
by default.
NullPointerException
- If file
or charset
is
null
.
UnsupportedEncodingException
- If charset is not supported by
this JVM.
FileNotFoundException
- If the file cannot get opened for reading.
ZipException
- If the file is not ZIP compatible.
IOException
- On any other I/O related issue.public BasicZipFile(ReadOnlyFile rof) throws NullPointerException, FileNotFoundException, ZipException, IOException
rof
- The read only file.
Note that this constructor never closes this file.
NullPointerException
- If rof
is null
.
FileNotFoundException
- If the file cannot get opened for reading.
ZipException
- If the file is not ZIP compatible.
IOException
- On any other I/O related issue.public BasicZipFile(ReadOnlyFile rof, String charset) throws NullPointerException, UnsupportedEncodingException, FileNotFoundException, ZipException, IOException
rof
- The read only file.
Note that this constructor never closes this file.charset
- The charset to use for entry names and comments
- must not be null
!
NullPointerException
- If rof
or charset
is null
.
UnsupportedEncodingException
- If charset is not supported by
this JVM.
FileNotFoundException
- If the file cannot get opened for reading.
ZipException
- If the file is not ZIP compatible.
IOException
- On any other I/O related issue.public BasicZipFile(ReadOnlyFile rof, String charset, boolean preambled, boolean postambled) throws NullPointerException, UnsupportedEncodingException, FileNotFoundException, ZipException, IOException
rof
- The read only file.
Note that this constructor never closes this file.charset
- The charset to use for entry names and comments
- must not be null
!preambled
- If this is true
, then the ZIP compatible
file may have a preamble.
Otherwise, the ZIP compatible file must start with either a
Local File Header (LFH) signature or an End Of Central Directory
(EOCD) Header, causing this constructor to fail fast if the file
is actually a false positive ZIP compatible file, i.e. not
compatible to the ZIP File Format Specification.
This may be used to read Self Extracting ZIP files (SFX), which
usually contain the application code required for extraction in
a preamble.
This parameter is true
by default.postambled
- If this is true
, then the ZIP compatible
file may have a postamble of arbitrary length.
Otherwise, the ZIP compatible file must not have a postamble
which exceeds 64KB size, including the End Of Central Directory
record (i.e. including the ZIP file comment), causing this
constructor to fail fast if the file is actually a false positive
ZIP compatible file, i.e. not compatible to the ZIP File Format
Specification.
This may be used to read Self Extracting ZIP files (SFX) with
large postambles.
This parameter is false
by default.
NullPointerException
- If rof
or charset
is null
.
UnsupportedEncodingException
- If charset is not supported by
this JVM.
FileNotFoundException
- If the file cannot get opened for reading.
ZipException
- If the file is not ZIP compatible.
IOException
- On any other I/O related issue.Method Detail |
---|
protected ReadOnlyFile createReadOnlyFile(File file) throws FileNotFoundException, IOException
FileNotFoundException
- If the file cannot get opened for reading.
IOException
- On any other I/O related issue.protected ZipEntry createZipEntry(String name)
public String getComment()
null
if no comment exists.
public boolean busy()
true
if and only if some input streams are open to
read from this ZIP compatible file.
public String getCharset()
public String getEncoding()
getCharset()
instead.
public Enumeration entries()
public ZipEntry getEntry(String name)
ZipEntry
for the given name or
null
if no entry with that name exists.
Note that the returned entry is shared with this class.
It is illegal to change its state!
name
- Name of the ZIP entry.public int size()
public long length() throws IOException
IOException
public long getPreambleLength()
public InputStream getPreambleInputStream() throws IOException
InputStream
to read the preamble of this ZIP
compatible file.
Note that the returned stream is a lightweight stream,
i.e. there is no external resource such as a ReadOnlyFile
allocated for it. Instead, all streams returned by this method share
the underlying ReadOnlyFile
of this ZipFile
.
This allows to close this object (and hence the underlying
ReadOnlyFile
) without cooperation of the returned
streams, which is important if the application wants to work on the
underlying file again (e.g. update or delete it).
ZipException
- If this ZIP file has been closed.
IOException
public long getPostambleLength()
public InputStream getPostambleInputStream() throws IOException
InputStream
to read the postamble of this ZIP
compatible file.
Note that the returned stream is a lightweight stream,
i.e. there is no external resource such as a ReadOnlyFile
allocated for it. Instead, all streams returned by this method share
the underlying ReadOnlyFile
of this ZipFile
.
This allows to close this object (and hence the underlying
ReadOnlyFile
) without cooperation of the returned
streams, which is important if the application wants to work on the
underlying file again (e.g. update or delete it).
ZipException
- If this ZIP file has been closed.
IOException
public boolean offsetsConsiderPreamble()
true
if and only if the offsets in this ZIP file
are relative to the start of the file, rather than the first Local
File Header.
This method is intended for very special purposes only.
public final InputStream getInputStream(String name) throws IOException
getInputStream(name, false, true)
.
IOException
public final InputStream getInputStream(ZipEntry entry) throws IOException
getInputStream(entry.getName(), false, true)
instead.
IOException
public final InputStream getCheckedInputStream(String name) throws IOException
getInputStream(name, true, true)
.
IOException
public final InputStream getCheckedInputStream(ZipEntry entry) throws IOException
getInputStream(entry.getName(), true, true)
instead.
IOException
public InputStream getInputStream(String name, boolean inflate) throws IOException
IOException
public final InputStream getInputStream(ZipEntry entry, boolean inflate) throws IOException
IOException
protected InputStream getInputStream(String name, boolean check, boolean inflate) throws IOException
InputStream
for reading the inflated or
deflated data of the given entry.
If the close()
method is called on this instance, all input
streams returned by this method are closed, too.
name
- The name of the entry to get the stream for
- may not be null
!check
- Whether or not the entry's CRC-32 value is checked.
If and only if this parameter is true, two additional checks are
performed for the ZIP entry:
InputStream.close()
on the returned entry
stream, the CRC-32 value computed from the inflated entry
data is checked against the declared CRC-32 values.
This is independent from the inflate
parameter.
CRC32Exception
is thrown.
This parameter should be false
for most
applications, and is the default for the sibling of this class
in java.util.zip.ZipFile
.
inflate
- Whether or not the entry data should be inflated.
If false
, the entry data is not inflated,
even if the entry data is deflated.
This parameter should be true
for most applications.
null
if the
entry does not exist.
NullPointerException
- If name
is null
.
CRC32Exception
- If the declared CRC-32 values of the inflated
entry data are inconsistent across the entry headers.
ZipException
- If this file is not compatible to the ZIP File
Format Specification.
IOException
- If the entry cannot get read from this ZipFile.public void close() throws IOException
IOException
- if an error occurs closing the file.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |