Sunday, March 17, 2013

Compressing and Decompressing String in Java example of Deflater and Inflater of java.util.zip packate.

Compressing and Decompressing String in Java, using Deflater and Inflater of java.util.zip packate.

================================================================================================


package com.test;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.Inflater;

public class CompressFromJavaUtill {

    /**
     * @param args
     * @author laxman Guatam
     *    laxmangautam@gmail.com
     */
    public static void main(String[] args) {
        String emailContent = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"
                + "<html><head>"
                + "<title>You're Invited to Oracle's OTN Developer Day!</title>"
                + "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">"
                + "</head><body>"
                + "<p>This DVD includes all the resources you need for the OTN Developer Day: Java Development</p>"
                + "<ul>"
                + "<li><a href=\"software/\">Required  Software</a> (see below)</li>"
                + "<li><a href=\"Std_materials/\">Hands on Lab Manuals and Source </a></li>"
                + "<li><a href=\"appliance/\">Virtual Box Appliance</a></li>"
                + "<li><a href=\"Readme_for_netbeans.doc\">NetBeans License Readme </a></li>"
                + "</ul>"
                + "<p><strong>Server Track - System Requirements </strong></p>"
                + "<p>Virtual Box  installation </p>" + "</body>";

        int length = emailContent.length();

        byte data[] = null;

        try {
            data = emailContent.getBytes("ISO-8859-1");
            ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
            Deflater defaulterObj = new Deflater();
            DeflaterOutputStream deflter = new DeflaterOutputStream(byteStream,
                    defaulterObj);
            deflter.write(data);
            deflter.close();
            data = byteStream.toByteArray();
            byteStream.close();
            System.out.println(" Array data is " + data.toString());
            String newCompressedData = new String(data);
            System.out.println(" Orginal Content is " + emailContent);
            System.out.println(" Orginal Size is " + emailContent.length());
            System.out.println(" Compressed Content is  " + newCompressedData);
            System.out.println(" Compressed Content Size is  "
                    + newCompressedData.length());

            System.out.println("Decompressing now:::::::::::::::::::::::");

            byte[] output = new byte[length];
            Inflater decompresser = new Inflater();
            decompresser.setInput(data, 0, data.length);
            int resultNew = decompresser.inflate(output);

            System.out.println("Out put is " + resultNew);

            String orginalText = new String(output);
            System.out.println(" Orginal Content is " + orginalText);

            System.out.println(" Is it equal. "
                    + orginalText.equals(emailContent));

        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (DataFormatException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}
===============================Out Put will be:=================================================

 Array data is [B@3e25a5
 Orginal Content is <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>You're Invited to Oracle's OTN Developer Day!</title><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></head><body><p>This DVD includes all the resources you need for the OTN Developer Day: Java Development</p><ul><li><a href="software/">Required  Software</a> (see below)</li><li><a href="Std_materials/">Hands on Lab Manuals and Source </a></li><li><a href="appliance/">Virtual Box Appliance</a></li><li><a href="Readme_for_netbeans.doc">NetBeans License Readme </a></li></ul><p><strong>Server Track - System Requirements </strong></p><p>Virtual Box  installation </p></body>
 Orginal Size is 681
 
Compressed Content is  xœmRaoÓ0ý+·||È ¤®%ÚLZQ×NKÚ§ÊM®Ä±ƒ}é–Ϲ餡ñÅÒ=ß{~÷Îò¬Ø,ª‡Û+¸®nVpûc¾Z. Ë…øùa!DQÓÅÇ‹wPí¢!ã?¶B\­3%[ê,Ÿ¨%É?Eõà‡ó€°tCØ......

Decompressing now:::::::::::::::::::::::
Out put is 681
 Orginal Content is <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>You're Invited to Oracle's OTN Developer Day!</title><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></head><body><p>This DVD includes all the resources you need for the OTN Developer Day: Java Development</p><ul><li><a href="software/">Required  Software</a> (see below)</li><li><a href="Std_materials/">Hands on Lab Manuals and Source </a></li><li><a href="appliance/">Virtual Box Appliance</a></li><li><a href="Readme_for_netbeans.doc">NetBeans License Readme </a></li></ul><p><strong>Server Track - System Requirements </strong></p><p>Virtual Box  installation </p></body>
 Is it equal. true



























1 comment:

  1. Is that compressed data can be in text format

    ReplyDelete