static void Main(string[] args)
{
string data = "<Root><Child></Child>data1<Child>data2</Child><Child>data3</Child><Child>data4</Child><Child>data5</Child></Root>";
Console.WriteLine(data);
byte[] zipped = ZipDocumentData(data);
Console.WriteLine(Encoding.UTF8.GetString(zipped));
data = UnZipDocumentData(zipped);
Console.WriteLine(data);
Console.Read();
}
private static byte[] ZipDocumentData(string documentData)
{
byte[] byteArray = Encoding.UTF8.GetBytes(documentData);
string result = string.Empty;
using (MemoryStream ms = new MemoryStream())
{
using (GZipStream stream = new GZipStream(ms, CompressionMode.Compress))
{
//Compress
stream.Write(byteArray, 0, byteArray.Length);
}
return ms.ToArray();
}
}
private static string UnZipDocumentData(byte[] zippedDocumentData)
{
string result = string.Empty;
//Prepare for decompress
using (MemoryStream ms = new MemoryStream(zippedDocumentData))
{
using (GZipStream stream = new GZipStream(ms, CompressionMode.Decompress))
{
//Reset variable to collect uncompressed result
byte[] byteArray = new byte[4096];
//Decompress
int rByte = stream.Read(byteArray, 0, byteArray.Length);
result = Encoding.UTF8.GetString(byteArray);
}
}
return result;
}