public class ZipArchiveInputStream extends ArchiveInputStream
Note that ZipArchiveEntry may return -1 if the DEFLATE algorithm is used, as the size information is not available from the header.
The ZipFile class is preferred when reading from files.
As of Apache Commons Compress it transparently supports Zip64 extensions and thus individual entries and archives larger than 4 GB or with more than 65536 entries.
ZipFile
| Constructor and Description |
|---|
ZipArchiveInputStream(InputStream
|
ZipArchiveInputStream(InputStream
|
ZipArchiveInputStream(InputStream
|
ZipArchiveInputStream(InputStream
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
canReadEntryData(ArchiveEntry
Whether this class is able to read the given entry.
|
void |
close()
|
ArchiveEntry |
getNextEntry()
Returns the next Archive Entry in this Stream.
|
ZipArchiveEntry |
getNextZipEntry()
|
static boolean |
matches(byte[] signature, int length)
Checks if the signature matches what is expected for a zip file.
|
int |
read(byte[] buffer, int offset, int length)
|
long |
skip(long value)
Skips over and discards value bytes of data from this input stream.
|
count, count, getBytesRead, getCount, pushedBackBytes, readavailable, mark, markSupported, read, resetpublic ZipArchiveInputStream(InputStreaminputStream)
public ZipArchiveInputStream(InputStreaminputStream, String encoding)
encoding - the encoding to use for file names, use null for the platform's default encoding
public ZipArchiveInputStream(InputStreaminputStream, String encoding, boolean useUnicodeExtraFields)
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.
public ZipArchiveInputStream(InputStreaminputStream, String encoding, boolean useUnicodeExtraFields, boolean allowStoredEntriesWithDataDescriptor)
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.
allowStoredEntriesWithDataDescriptor - whether the stream will try to read STORED entries that use a data descriptor
public ZipArchiveEntrygetNextZipEntry() throws IOException
IOException
public ArchiveEntrygetNextEntry() throws IOException
ArchiveInputStream
getNextEntry in class
ArchiveInputStream
null if there are no more entries
IOException - if the next entry could not be read
public boolean canReadEntryData(ArchiveEntryae)
May return false if it is set up to use encryption or a compression method that hasn't been implemented yet.
canReadEntryData in class
ArchiveInputStream
ae - the entry to test
public int read(byte[] buffer,
int offset,
int length)
throws IOException
read in class
InputStream
IOException
public void close()
throws IOException
close in interface
Closeable
close in interface
AutoCloseable
close in class
InputStream
IOException
public long skip(long value)
throws IOException
This implementation may end up skipping over some smaller number of bytes, possibly 0, if and only if it reaches the end of the underlying stream.
The actual number of bytes skipped is returned.
skip in class
InputStream
value - the number of bytes to be skipped.
IOException - - if an I/O error occurs.
IllegalArgumentException - - if value is negative.
public static boolean matches(byte[] signature,
int length)
signature - the bytes to check
length - the number of bytes to check