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:
// 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();
}
} |
Output:
Compressed String :x?sOM?.N?/r???q?? Size 21 Original String :GeeksforGeeksGeeksforGeeksGeeksforGeeksGeeksforGeeks Size 52
Example 2:
// 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();
}
} |
Output:
Compressed String :x?K?.vOM?.N?/???? Size 22
Reference: https://docs.oracle.com/javase/7/docs/api/java/util/zip/Deflater.html#setInput()