Friday, February 13, 2009

C#: Compressing, uncompressing, encoding...

To compress data and use Unicode character encoding:

void WriteCompressedDataToStream(string data, Stream destStm)
{
using (DeflateStream zipStm = new DeflateStream(destStm, CompressionMode.Compress))
using (StreamWriter destWriter = new StreamWriter(zipStm, Encoding.Unicode))
destWriter.Write(data);
}

To decompress the above:

string ReadCompressedDataFromStream(Stream srcStm)
{
using (DeflateStream zipStm = new DeflateStream(srcStm, CompressionMode.Decompress))
using (StreamReader srcRdr = new StreamReader(zipStm))
return srcRdr.ReadToEnd();
}

No comments: