ZipInputStream
open class ZipInputStream : InflaterInputStream
kotlin.Any | ||||
↳ | java.io.InputStream | |||
↳ | java.io.FilterInputStream | |||
↳ | java.util.zip.InflaterInputStream | |||
↳ | java.util.zip.ZipInputStream |
This class implements an input stream filter for reading files in the ZIP file format. Includes support for both compressed and uncompressed entries.
Summary
Constants | |
---|---|
static Int |
Central directory (CEN) header internal file attributes field offset. |
static Int |
Central directory (CEN) header external file attributes field offset. |
static Int |
Central directory (CEN) header comment length field offset. |
static Int |
Central directory (CEN) header uncompressed file crc-32 value field offset. |
static Int |
Central directory (CEN) header disk number start field offset. |
static Int |
Central directory (CEN) header extra field length field offset. |
static Int |
Central directory (CEN) header encrypt, decrypt flags field offset. |
static Int |
Central directory (CEN) header size in bytes (including signature). |
static Int |
Central directory (CEN) header compression method field offset. |
static Int |
Central directory (CEN) header uncompressed size field offset. |
static Int |
Central directory (CEN) header filename length field offset. |
static Int |
Central directory (CEN) header LOC header offset field offset. |
static Long |
Central directory (CEN) header signature. |
static Int |
Central directory (CEN) header compressed size field offset. |
static Int |
Central directory (CEN) header modification time field offset. |
static Int |
Central directory (CEN) header version made by field offset. |
static Int |
Central directory (CEN) header version needed to extract field offset. |
static Int |
End of central directory (END) header zip file comment length field offset. |
static Int |
End of central directory (END) header size in bytes (including signature). |
static Int |
End of central directory (END) header offset for the first CEN header field offset. |
static Long |
End of central directory (END) header signature. |
static Int |
End of central directory (END) header central directory size in bytes field offset. |
static Int |
End of central directory (END) header number of entries on this disk field offset. |
static Int |
End of central directory (END) header total number of entries field offset. |
static Int |
Extra local (EXT) header uncompressed file crc-32 value field offset. |
static Int |
Extra local (EXT) header size in bytes (including signature). |
static Int |
Extra local (EXT) header uncompressed size field offset. |
static Long |
Extra local (EXT) header signature. |
static Int |
Extra local (EXT) header compressed size field offset. |
static Int |
Local file (LOC) header uncompressed file crc-32 value field offset. |
static Int |
Local file (LOC) header extra field length field offset. |
static Int |
Local file (LOC) header general purpose bit flag field offset. |
static Int |
Local file (LOC) header size in bytes (including signature). |
static Int |
Local file (LOC) header compression method field offset. |
static Int |
Local file (LOC) header uncompressed size field offset. |
static Int |
Local file (LOC) header filename length field offset. |
static Long |
Local file (LOC) header signature. |
static Int |
Local file (LOC) header compressed size field offset. |
static Int |
Local file (LOC) header modification time field offset. |
static Int |
Local file (LOC) header version needed to extract field offset. |
Public constructors | |
---|---|
ZipInputStream(in: InputStream!) Creates a new ZIP input stream. |
|
ZipInputStream(in: InputStream!, charset: Charset!) Creates a new ZIP input stream. |
Public methods | |
---|---|
open Int |
Returns 0 after EOF has reached for the current entry data, otherwise always return 1. |
open Unit |
close() Closes this input stream and releases any system resources associated with the stream. |
open Unit |
Closes the current ZIP entry and positions the stream for reading the next entry. |
open ZipEntry! |
Reads the next ZIP file entry and positions the stream at the beginning of the entry data. |
open Int |
Reads from the current ZIP entry into an array of bytes. |
open Long |
Skips specified number of bytes in the current ZIP entry. |
Protected methods | |
---|---|
open ZipEntry! |
createZipEntry(name: String!) Creates a new |
Inherited functions | |
---|---|
Inherited properties | |
---|---|
Constants
CENATT
static val CENATT: Int
Central directory (CEN) header internal file attributes field offset.
Value: 36
CENATX
static val CENATX: Int
Central directory (CEN) header external file attributes field offset.
Value: 38
CENCOM
static val CENCOM: Int
Central directory (CEN) header comment length field offset.
Value: 32
CENCRC
static val CENCRC: Int
Central directory (CEN) header uncompressed file crc-32 value field offset.
Value: 16
CENDSK
static val CENDSK: Int
Central directory (CEN) header disk number start field offset.
Value: 34
CENEXT
static val CENEXT: Int
Central directory (CEN) header extra field length field offset.
Value: 30
CENFLG
static val CENFLG: Int
Central directory (CEN) header encrypt, decrypt flags field offset.
Value: 8
CENHDR
static val CENHDR: Int
Central directory (CEN) header size in bytes (including signature).
Value: 46
CENHOW
static val CENHOW: Int
Central directory (CEN) header compression method field offset.
Value: 10
CENLEN
static val CENLEN: Int
Central directory (CEN) header uncompressed size field offset.
Value: 24
CENNAM
static val CENNAM: Int
Central directory (CEN) header filename length field offset.
Value: 28
CENOFF
static val CENOFF: Int
Central directory (CEN) header LOC header offset field offset.
Value: 42
CENSIG
static val CENSIG: Long
Central directory (CEN) header signature.
Value: 33639248L
CENSIZ
static val CENSIZ: Int
Central directory (CEN) header compressed size field offset.
Value: 20
CENTIM
static val CENTIM: Int
Central directory (CEN) header modification time field offset.
Value: 12
CENVEM
static val CENVEM: Int
Central directory (CEN) header version made by field offset.
Value: 4
CENVER
static val CENVER: Int
Central directory (CEN) header version needed to extract field offset.
Value: 6
ENDCOM
static val ENDCOM: Int
End of central directory (END) header zip file comment length field offset.
Value: 20
ENDHDR
static val ENDHDR: Int
End of central directory (END) header size in bytes (including signature).
Value: 22
ENDOFF
static val ENDOFF: Int
End of central directory (END) header offset for the first CEN header field offset.
Value: 16
ENDSIG
static val ENDSIG: Long
End of central directory (END) header signature.
Value: 101010256L
ENDSIZ
static val ENDSIZ: Int
End of central directory (END) header central directory size in bytes field offset.
Value: 12
ENDSUB
static val ENDSUB: Int
End of central directory (END) header number of entries on this disk field offset.
Value: 8
ENDTOT
static val ENDTOT: Int
End of central directory (END) header total number of entries field offset.
Value: 10
EXTCRC
static val EXTCRC: Int
Extra local (EXT) header uncompressed file crc-32 value field offset.
Value: 4
EXTHDR
static val EXTHDR: Int
Extra local (EXT) header size in bytes (including signature).
Value: 16
EXTLEN
static val EXTLEN: Int
Extra local (EXT) header uncompressed size field offset.
Value: 12
EXTSIG
static val EXTSIG: Long
Extra local (EXT) header signature.
Value: 134695760L
EXTSIZ
static val EXTSIZ: Int
Extra local (EXT) header compressed size field offset.
Value: 8
LOCCRC
static val LOCCRC: Int
Local file (LOC) header uncompressed file crc-32 value field offset.
Value: 14
LOCEXT
static val LOCEXT: Int
Local file (LOC) header extra field length field offset.
Value: 28
LOCFLG
static val LOCFLG: Int
Local file (LOC) header general purpose bit flag field offset.
Value: 6
LOCHDR
static val LOCHDR: Int
Local file (LOC) header size in bytes (including signature).
Value: 30
LOCHOW
static val LOCHOW: Int
Local file (LOC) header compression method field offset.
Value: 8
LOCLEN
static val LOCLEN: Int
Local file (LOC) header uncompressed size field offset.
Value: 22
LOCNAM
static val LOCNAM: Int
Local file (LOC) header filename length field offset.
Value: 26
LOCSIG
static val LOCSIG: Long
Local file (LOC) header signature.
Value: 67324752L
LOCSIZ
static val LOCSIZ: Int
Local file (LOC) header compressed size field offset.
Value: 18
LOCTIM
static val LOCTIM: Int
Local file (LOC) header modification time field offset.
Value: 10
LOCVER
static val LOCVER: Int
Local file (LOC) header version needed to extract field offset.
Value: 4
Public constructors
ZipInputStream
ZipInputStream(in: InputStream!)
Creates a new ZIP input stream.
The UTF-8 charset
is used to decode the entry names.
Parameters | |
---|---|
in |
InputStream!: the actual input stream |
ZipInputStream
ZipInputStream(
in: InputStream!,
charset: Charset!)
Creates a new ZIP input stream.
Parameters | |
---|---|
in |
InputStream!: the actual input stream |
charset |
Charset!: The charset to be used to decode the ZIP entry name (ignored if the language encoding bit of the ZIP entry's general purpose bit flag is set). |
Public methods
available
open fun available(): Int
Returns 0 after EOF has reached for the current entry data, otherwise always return 1.
Programs should not count on this method to return the actual number of bytes that could be read without blocking.
Return | |
---|---|
Int |
1 before EOF and 0 after EOF has reached for current entry. |
Exceptions | |
---|---|
java.io.IOException |
if an I/O error occurs. |
close
open fun close(): Unit
Closes this input stream and releases any system resources associated with the stream.
Exceptions | |
---|---|
java.lang.Exception |
if this resource cannot be closed |
java.io.IOException |
if an I/O error has occurred |
closeEntry
open fun closeEntry(): Unit
Closes the current ZIP entry and positions the stream for reading the next entry.
Exceptions | |
---|---|
java.util.zip.ZipException |
if a ZIP file error has occurred |
java.io.IOException |
if an I/O error has occurred |
getNextEntry
open fun getNextEntry(): ZipEntry!
Reads the next ZIP file entry and positions the stream at the beginning of the entry data.
If the app targets Android U or above, zip file entry names containing ".." or starting with "/" passed here will throw a ZipException
. For more details, see dalvik.system.ZipPathValidator
.
Return | |
---|---|
ZipEntry! |
the next ZIP file entry, or null if there are no more entries |
Exceptions | |
---|---|
java.util.zip.ZipException |
if (1) a ZIP file error has occurred or (2) targetSdkVersion >= BUILD.VERSION_CODES.UPSIDE_DOWN_CAKE and (the name argument contains ".." or starts with "/"). |
java.io.IOException |
if an I/O error has occurred |
read
open fun read(
b: ByteArray!,
off: Int,
len: Int
): Int
Reads from the current ZIP entry into an array of bytes. If len
is not zero, the method blocks until some input is available; otherwise, no bytes are read and 0
is returned.
Parameters | |
---|---|
b |
ByteArray!: the buffer into which the data is read |
off |
Int: the start offset in the destination array b |
len |
Int: the maximum number of bytes read |
Return | |
---|---|
Int |
the actual number of bytes read, or -1 if the end of the entry is reached |
Exceptions | |
---|---|
java.io.IOException |
if an I/O error has occurred |
java.lang.NullPointerException |
if b is null . |
java.lang.IndexOutOfBoundsException |
if off is negative, len is negative, or len is greater than b.length - off |
java.util.zip.ZipException |
if a ZIP file error has occurred |
skip
open fun skip(n: Long): Long
Skips specified number of bytes in the current ZIP entry.
Parameters | |
---|---|
n |
Long: the number of bytes to skip |
Return | |
---|---|
Long |
the actual number of bytes skipped |
Exceptions | |
---|---|
java.io.IOException |
if an I/O error has occurred |
java.lang.IllegalArgumentException |
if n < 0 |
java.util.zip.ZipException |
if a ZIP file error has occurred |
Protected methods
createZipEntry
protected open fun createZipEntry(name: String!): ZipEntry!
Creates a new ZipEntry
object for the specified entry name.
Parameters | |
---|---|
name |
String!: the ZIP file entry name |
Return | |
---|---|
ZipEntry! |
the ZipEntry just created |