Exemplo n.º 1
0
        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.");
        }