private static void CompressFile(string inputFile, string outputFilename) { Console.WriteLine("Compressing file {0} to {1}", inputFile, outputFilename); var input = String.Join(Environment.NewLine, File.ReadAllText(inputFile, Encoding)); var dict = CharacterFrequencyDictionary.CreateDictionary(input); var fileHeader = CharacterFrequencyDictionary.GetHeaderByteArray(dict); var compressed = new HuffmanTree <char>(dict).Encode(input); var fileByteArray = CompressUtil.GetFileByteArray(fileHeader, compressed); using (var fs = new FileStream(outputFilename, FileMode.Create, FileAccess.Write)) fs.Write(fileByteArray, 0, fileByteArray.Length); Console.WriteLine("Compression complete."); }