Java.util.zip.InflaterInputStream class in Java
This class implements a stream filter for uncompressing data in the “deflate” compression format. It is also used as the basis for other decompression filters, such as GZIPInputStream.
Constructors
- InflaterInputStream(InputStream in) : Creates a new input stream with a default decompressor and buffer size.
- InflaterInputStream(InputStream in, Inflater inf) : Creates a new input stream with the specified decompressor and a default buffer size.
- InflaterInputStream(InputStream in, Inflater inf, int size) : Creates a new input stream with the specified decompressor and buffer size.
Methods:
- int available() : Returns 0 after EOF has been reached, otherwise always return 1.
Syntax : public int available() throws IOException Returns: 1 before EOF and 0 after EOF. Throws: IOException
- void close() : Closes this input stream and releases any system resources associated with the stream.
Syntax : public void close() throws IOException Throws: IOException
- protected void fill() : Fills input buffer with more data to decompress.
Syntax : protected void fill() throws IOException Throws: IOException
- void mark(int readlimit) : Marks the current position in this input stream.
Syntax : public void mark(int readlimit) Parameters: readlimit - the maximum limit of bytes that can be read before the mark position becomes invalid.
- boolean markSupported() : Tests if this input stream supports the mark and reset methods.
Syntax : public boolean markSupported() Returns: a boolean indicating if this stream type supports the mark and reset methods.
- int read() : Reads a byte of uncompressed data.
Syntax : public int read() throws IOException Returns: the byte read, or -1 if end of compressed input is reached Throws: IOException
- int read(byte[] b, int off, int len) : Reads uncompressed data into an array of bytes.
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 compressed input is reached. Throws: NullPointerException IndexOutOfBoundsException ZipException IOException
- void reset() : Repositions this stream to the position at the time the mark method was last called on this input stream.
Syntax : public void reset() throws IOException Throws: IOException
- long skip(long n) : Skips specified number of bytes of uncompressed data.
Syntax : public long skip(long n) throws IOException Parameters: n - the number of bytes to skip Returns: the actual number of bytes skipped. Throws: IOException IllegalArgumentException
Program:
//Java program to demonstrate InflaterInputStream import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.DeflaterOutputStream; import java.util.zip.InflaterInputStream; class InflaterInputStreamDemo { public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream( "file.txt" ); //Assign FileOutputStream to DeflaterOutputStream DeflaterOutputStream dos = new DeflaterOutputStream(fos); //write it into DeflaterOutputStream for ( int i = 0 ; i < 10 ; i++) { dos.write(i); } dos.flush(); dos.close(); FileInputStream fis = new FileInputStream( "file.txt" ); InflaterInputStream iis = new InflaterInputStream(fis); //illustrating available() method System.out.println(iis.available()); //illustrating mark and markSupported() if (iis.markSupported()) iis.mark( 15 ); else System.out.println( false ); //illustrating skip() method iis.skip( 3 ); //illustrating read() for ( int i = 0 ; i < 3 ; i++) { System.out.print(iis.read()); } //illustrating read(byte[] b,int off,int len) byte b[]= new byte [ 4 ]; for ( int i = 0 ; i < 4 ; i++) { iis.read(b, 0 , 4 ); } for ( int i = 0 ; i < 4 ; i++) { System.out.print(b[i]); } } } |
Output:
1 false 3456789
Next Article: Java.util.zip.InflaterOutputStream class in Java
Contact Us