Java.util.zip.ZipInputStream class in Java
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
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);
ZipEntry ze = obj.createZipEntry( "ZipEntry" );
System.out.println(ze.getName());
ZipEntry je = zis.getNextEntry();
System.out.println(je.getName());
zis.skip( 3 );
zis.closeEntry();
zis.getNextEntry();
byte b[] = new byte [ 10 ];
if (zis.available() == 1 )
zis.read(b);
System.out.println(Arrays.toString(b));
zis.close();
}
}
|
Output :
ZipEntry
awesome-cv.cls
[35, 32, 65, 119, 101, 115, 111, 109, 101, 32]
Last Updated :
12 Sep, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...