DeflateStream Class

Overview

  • Used to compress and decompress data.
  • Slightly smaller result than GZipStream because of lack of header information.
  • Use for internal use in your own application.
  • Works like a BufferedStream as it sits on top of another stream.
  • Limited to files up to 4GB (uncompressed).

Good practice

  • Remember to call Close on a stream.

Compress File

FileStream fileIn = File.OpenRead(@"C:\Public\Test.txt");
FileStream fileOut = File.OpenWrite(@"C:\Public\TestComp.txt");
 
DeflateStream compress = new DeflateStream(fileOut, CompressionMode.Compress);
 
byte[] buffer = new byte[fileIn.Length];
fileIn.Read(buffer, 0, buffer.Length);
compress.Write(buffer, 0, buffer.Length);
compress.Close();
 
fileIn.Close();
fileOut.Close();

Decompress File

FileStream compressedFile = File.OpenRead(@"C:\Public\TestComp.txt");
DeflateStream decompress = new DeflateStream(compressedFile, CompressionMode.Decompress);
StreamReader read = new StreamReader(decompress);
 
Console.WriteLine(read.ReadToEnd());
read.Close();
decompress.Close();
compressedFile.Close();