Java.util.zip.ZipInputStream class in Java

28 Jan, 2017
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 bytesthat 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 
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
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 
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
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 
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
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 
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 GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks 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.
Java-I/O
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Stream In Java
Introduction to Java
Constructors in Java
Exceptions in Java
Generics in Java
Functional Interfaces in Java
Java Programming Examples
Strings in Java
Differences between JDK, JRE and JVM
Abstraction in Java