- java.util.zip Package Classes
- java.util.zip - Home
- java.util.zip - Adler32
- java.util.zip - CheckedInputStream
- java.util.zip - CheckedOutputStream
- java.util.zip - CRC32
- java.util.zip - Deflater
- java.util.zip - DeflaterInputStream
- java.util.zip - DeflaterOutputStream
- java.util.zip - GZIPInputStream
- java.util.zip - GZIPOutputStream
- java.util.zip - Inflater
- java.util.zip - InflaterInputStream
- java.util.zip - InflaterOutputStream
- java.util.zip - ZipEntry
- java.util.zip - ZipFile
- java.util.zip - ZipInputStream
- java.util.zip - ZipOutputStream
- java.util.zip Package Extras
- java.util.zip - Exceptions
- java.util.zip - Error
- java.util.zip Useful Resources
- java.util.zip - Quick Guide
- java.util.zip - Useful Resources
- java.util.zip - Discussion
java.util.zip.Deflater.needsInput() Method Example
Description
The java.util.zip.Deflater.needsInput() method returns true if the input data buffer is empty and setInput() should be called in order to provide more input.
Declaration
Following is the declaration for java.util.zip.Deflater.needsInput() method.
public boolean needsInput()
Returns
true if the input data buffer is empty and setInput() should be called in order to provide more input.
Example
The following example shows the usage of java.util.zip.Deflater.needsInput() method.
package com.tutorialspoint; import java.io.UnsupportedEncodingException; import java.util.zip.DataFormatException; import java.util.zip.Deflater; import java.util.zip.Inflater; public class DeflaterDemo { public static void main(String[] args) throws DataFormatException, UnsupportedEncodingException { String message = "Welcome to TutorialsPoint.com;" +"Welcome to TutorialsPoint.com;" +"Welcome to TutorialsPoint.com;" +"Welcome to TutorialsPoint.com;" +"Welcome to TutorialsPoint.com;" +"Welcome to TutorialsPoint.com;" +"Welcome to TutorialsPoint.com;" +"Welcome to TutorialsPoint.com;" +"Welcome to TutorialsPoint.com;" +"Welcome to TutorialsPoint.com;"; System.out.println("Original Message length : " + message.length()); byte[] input = message.getBytes("UTF-8"); // Compress the bytes byte[] output = new byte[1024]; Deflater deflater = new Deflater(); int inCount = input.length; int inPosition = 0; int outPosition = 0; int MAX_BUFFER_SIZE = 10; while(!deflater.finished()){ int want = -1; int got; if (deflater.needsInput() && inCount != 0) { want = (inCount < MAX_BUFFER_SIZE) ? inCount : MAX_BUFFER_SIZE; deflater.setInput(input, inPosition, want); inCount -= want; inPosition += want; if (inCount == 0) { deflater.finish(); } } // deflate to current position in output buffer int compCount; compCount = deflater.deflate(output, outPosition, MAX_BUFFER_SIZE); outPosition += compCount; } System.out.println("Total uncompressed bytes output :" + deflater.getTotalOut()); System.out.println("Compressed Message Checksum :" + deflater.getAdler()); deflater.finished(); System.out.println("Compressed Message length : " + outPosition); // Decompress the bytes Inflater inflater = new Inflater(); inflater.setInput(output, 0, outPosition); byte[] result = new byte[1024]; int resultLength = inflater.inflate(result); inflater.finished(); // Decode the bytes into a String message = new String(result, 0, resultLength, "UTF-8"); System.out.println("UnCompressed Message Checksum :" + inflater.getAdler()); System.out.println("UnCompressed Message length : " + message.length()); } }
Let us compile and run the above program, this will produce the following result −
Original Message length : 300 Total uncompressed bytes output :42 Compressed Message Checksum :368538129 Compressed Message length : 42 UnCompressed Message Checksum :368538129 UnCompressed Message length : 300Print
javazip_deflater.htm
Advertisements