Deflater setInput() function in Java with examples


The setInput() function of the Deflater class in java.util.zip is used to set input data for compression. This function should be called when needsInput() returns true indicating input buffer is empty.

Function Signature:

public void setInput(byte[] b)
public void setInput(byte[] b, int offset, int len)

Syntax:



d.setInput(byte[]);
d.setInput(byte[], int, int);

Parameter: The various parameters accepted by these overloaded functions are:

  • byte[] b: This is the input array that is to be deflated
  • int offset: This is the starting offset from which the values are to be read in the given array
  • int length: This is the maximum length to be compressed from the starting offset.

Return Type: The function has do not return anything.

Exception: The function does not throw any exception

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to describe the use
// of setInput(byte[] b) function
  
import java.util.zip.*;
import java.io.UnsupportedEncodingException;
  
class GFG {
    public static void main(String args[])
        throws UnsupportedEncodingException
    {
        // deflater
        Deflater d = new Deflater();
  
        // get the text
        String pattern = "GeeksforGeeks", text = "";
  
        // generate the text
        for (int i = 0; i < 4; i++)
            text += pattern;
  
        // set the Input for deflator
        d.setInput(text.getBytes("UTF-8"));
  
        // finish
        d.finish();
  
        // output bytes
        byte output[] = new byte[1024];
  
        // compress the data
        int size = d.deflate(output);
  
        // compressed String
        System.out.println("Compressed String :"
                           + new String(output)
                           + "\n Size " + size);
  
        // original String
        System.out.println("Original String :" + text
                           + "\n Size " + text.length());
  
        // end
        d.end();
    }
}

chevron_right


Output:

Compressed String :x?sOM?.N?/r???q??
 Size 21
Original String :GeeksforGeeksGeeksforGeeksGeeksforGeeksGeeksforGeeks
 Size 52

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to describe the use
// of setInput(byte[] b, int offset, int len) function
  
import java.util.zip.*;
import java.io.UnsupportedEncodingException;
  
class GFG {
    public static void main(String args[])
        throws UnsupportedEncodingException
    {
        // deflater
        Deflater d = new Deflater();
  
        // get the text
        String pattern = "GeeksforGeeks", text = "";
  
        // generate the text
        for (int i = 0; i < 4; i++)
            text += pattern;
  
        // set the Input for deflator
        d.setInput(text.getBytes("UTF-8"), 10, 30);
  
        // finish
        d.finish();
  
        // output bytes
        byte output[] = new byte[1024];
  
        // compress the data
        int size = d.deflate(output);
  
        // compressed String
        System.out.println("Compressed String :"
                           + new String(output)
                           + "\n Size " + size);
  
        // end
        d.end();
    }
}

chevron_right


Output:

Compressed String :x?K?.vOM?.N?/????
 Size 22

Reference: https://docs.oracle.com/javase/7/docs/api/java/util/zip/Deflater.html#setInput()



My Personal Notes arrow_drop_up

Second year Department of Information Technology Jadavpur University

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 Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.