This class implements an input stream filter for reading files in the ZIP file format. Includes support for both compressed and uncompressed entries.
Constructors:
Java
Output :
- ZipInputStream(InputStream in) : Creates a new ZIP input stream.
- ZipInputStream(InputStream in, Charset charset) : Creates a new ZIP input stream
- 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();
}
}
ZipEntry awesome-cv.cls [35, 32, 65, 119, 101, 115, 111, 109, 101, 32]