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