.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal

Home >> Articles >> C# >> Post New Resource Bookmark and Share   

 Subscribe to Articles

Compress and Decompress data using GZipStream

Posted By:Kirtan       Posted Date: April 21, 2010    Points: 25    Category: C#    URL: http://www.dotnetspark.com  

This article guides you how to compress the data using GZipStream in C#.

:Introduction ::

Article will teach you about how to Compress the data with GZipStream Class of .net

Technology :

CSharp .net 2.0/3.5

:: Implementation ::

For simple compression and decompression of data we will use GZipStream class of the .NET.

In this article,  I will explain how to compress and decompress data by building small sample application.

So lets import the following name spaces in your application. 

using System.IO;

using System.IO.Compression;

Here when working with GZipStream we need to specify Stream to Open for writing as first argument and CompressionMode as second argument that specifies weather we want to Compress the Data or Decompress the data we can do this by Specifying enumeration CompressMode.Compress or CompressMode.Decompress as second argument of the GZipStream Class object.

Here in example I am compressing textdata into file test.zip file and reread it from the created test.zip file.

private void btnCompressData_Click(object sender, EventArgs e)

    //Write Data To Zip File

    string data = txtData.Text;

    GZipStream outStream = new GZipStream(File.OpenWrite("test.zip"), CompressionMode.Compress);

    StreamWriter sw = new StreamWriter(outStream);



    MessageBox.Show("Data Compressed to file test.zip!!");

    txtData.Text = "";


:: explanation of above code ::

In first line of Compressing Data Part I have stored the data to be written in variable "data" from textBox now in second line creates a new GZipStream class and As constructor argument of that object of GZipStream we have passed File.OpenWrite("test.zip") which will return FileStream object associated with "test.zip" file and in Second argument we have passed CompressionModel.Compress as we want to compress the data ..

now We have created one StreamWriter object to write the data to GZipStream object we have by using Write() method of the StreamWriter class we can write data to the GZipStream object

and finally we have closed the StreamWriter Object to end the writing

private void btnDecompressData_Click(object sender, EventArgs e)

    //Read the Data From zip
    string ReadData = "";

    GZipStream instream = new GZipStream(File.OpenRead("test.zip"), CompressionMode.Decompress);

    StreamReader reader = new StreamReader(instream);
    ReadData = reader.ReadToEnd();
    txtData.Text = ReadData;
    MessageBox.Show("Data Read Successfully!!");

Same kind of logic is there for reading data also we open the test.zip file using GZipStream object and read the data in stream using ReadToEnd() method and displayed the read data to the TextBox again. and closed the StreamReader object.

That's it :)

:: Conclusion ::

This article explains how to compress and decompress data using GZipStream class of .NET.

 Subscribe to Articles


Further Readings:

Author: Nikhil Kumar         Company URL: http://www.dotnetspark.com
Posted Date: April 21, 2010


Post Comment

You must Sign In To post reply
Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend