java.util.zip.DeflaterInputStream.skip() Method Example



Description

The java.util.zip.DeflaterInputStream.skip(long n) method skips over and discards data from the input stream. This method may block until the specified number of bytes are read and skipped. Note: While n is given as a long, the maximum number of bytes which can be skipped is Integer.MAX_VALUE.

Declaration

Following is the declaration for java.util.zip.DeflaterInputStream.skip(long n) method.

public long skip(long n)
   throws IOException

Parameters

  • n − number of bytes to be skipped.

Returns

the actual number of bytes skipped.

Exceptions

  • IOException − if an I/O error occurs or if this stream is already closed.

Example

The following example shows the usage of java.util.zip.DeflaterInputStream.skip(long n) method.

package com.tutorialspoint;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.InflaterInputStream;

public class DeflaterInputStreamDemo {
   public static void main(String[] args) throws DataFormatException, IOException {
      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");
      int length = message.length();
      // Compress the bytes
      byte[] output = new byte[1024];
      Deflater deflater = new Deflater();
      deflater.setInput(input);
   
      deflater.finish();
      int compressedDataLength = deflater.deflate(output,0 , output.length, Deflater.NO_FLUSH);
      System.out.println("Total uncompressed bytes input :" + deflater.getTotalIn());
      System.out.println("Compressed Message Checksum :" + deflater.getAdler());     
      deflater.finished();

      System.out.println("Compressed Message length : " + compressedDataLength);
   
      ByteArrayInputStream bin = new ByteArrayInputStream(output);
      InflaterInputStream inflaterInputStream = new InflaterInputStream(bin);
      byte[] result = new byte[1024];
      System.out.println("Before Skipping, available: " + inflaterInputStream.available());
      inflaterInputStream.skip(result.length);
      System.out.println("After Skipping, available: " + inflaterInputStream.available());
      inflaterInputStream.close();     
   }
}

Let us compile and run the above program, this will produce the following result −

Original Message length : 300
Total uncompressed bytes input :300
Compressed Message Checksum :368538129
Compressed Message length : 42
Before Skipping, available: 1
After Skipping, available: 0
Print
javazip_deflaterinputstream.htm
Advertisements