Open In App

Java.util.zip.InflaterInputStream class in Java

Last Updated : 12 Sep, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads