This class implements an input stream filter for reading files in the ZIP file format. Includes support for both compressed and uncompressed entries.
Constructors:
- ZipInputStream(InputStream in) : Creates a new ZIP input stream.
- ZipInputStream(InputStream in, Charset charset) : Creates a new ZIP input stream
Methods :
- int available() : Returns 0 after EOF has reached for the current entry data, otherwise always return .
Programs should not count on this method to return the actual number of bytes
that could be read without blocking.Syntax :public int available() throws IOException Overrides: available in class InflaterInputStream Returns: 1 before EOF and 0 after EOF has reached for current entry. Programs should not count on this method to return the actual number of bytes that could be read without blocking. Throws: IOException
- void close() : Closes this input stream and releases any system resources associated with the stream.
Syntax :public void close() throws IOException Overrides: close in class InflaterInputStream Throws: IOException
- void closeEntry() : Closes the current ZIP entry and positions the stream for reading the next entry.
Syntax :public void closeEntry() throws IOException Throws: ZipException IOException
- protected ZipEntry createZipEntry(String name) : Creates a new ZipEntry object for the specified entry name.
Syntax :protected ZipEntry createZipEntry(String name) Parameters: name - the ZIP file entry name Returns: the ZipEntry just created
- ZipEntry getNextEntry() : Reads the next ZIP file entry and positions the stream at the beginning of the entry data.
Syntax :public ZipEntry getNextEntry() throws IOException Returns: the next ZIP file entry, or null if there are no more entries Throws: ZipException IOException
- int read(byte[] b, int off, int len) : 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.
Syntax :public int read(byte[] b, int off, int len) throws IOException Parameters: b - the buffer into which the data is read off - the start offset in the destination array b len - the maximum number of bytes read Returns: the actual number of bytes read, or -1 if the end of the entry is reached Throws: NullPointerException IndexOutOfBoundsException ZipException IOException
- long skip(long n) : Skips specified number of bytes in the current ZIP entry.
Syntax :public long skip(long n) throws IOException Parameters: n - the number of bytes to skip Returns: the actual number of bytes skipped Throws: ZipException IOException IllegalArgumentException
//Java program demonstrating ZipInputStream methods import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.jar.JarInputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; class ZipInputStreamDemo extends ZipInputStream { public ZipInputStreamDemo(InputStream in) { super (in); } public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream( "Awesome CV.zip" ); ZipInputStream zis = new JarInputStream(fis); ZipInputStreamDemo obj = new ZipInputStreamDemo(zis); //illustrating createZipEntry() ZipEntry ze = obj.createZipEntry( "ZipEntry" ); System.out.println(ze.getName()); //illustrating getNextEntry() ZipEntry je = zis.getNextEntry(); System.out.println(je.getName()); //illustrating skip() method zis.skip( 3 ); //illustrating closeEntry() method zis.closeEntry(); zis.getNextEntry(); byte b[] = new byte [ 10 ]; //illustrating available() method //Reads up to byte.length bytes of data from this input stream if (zis.available() == 1 ) zis.read(b); System.out.println(Arrays.toString(b)); //closing the stream zis.close(); } } |
Output :
ZipEntry awesome-cv.cls [35, 32, 65, 119, 101, 115, 111, 109, 101, 32]
This article is contributed by Nishant Sharma. If you like Lazyroar and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the Lazyroar main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.