예제 #1
0
파일: LZ77.cs 프로젝트: okkt/jn18
 public void Compress(string path)
 {
     writer     = new CompressedFileWriter(path + ".lz");
     bitBuffer  = new List <bool>();
     dictionary = new StringBuilder();
     phrase     = string.Empty;
     using (var streamReader = new StreamReader(path))
     {
         var chars = new char[CHAR_BLOCK_LENGTH];
         while (!streamReader.EndOfStream)
         {
             var readChars       = streamReader.ReadBlock(chars, 0, CHAR_BLOCK_LENGTH);
             var dataToBeEncoded = new StringBuilder(new string(chars.Take(readChars).ToArray()));
             compressBlock(dataToBeEncoded);
         }
         writer.WriteBlock(bitBuffer);
     }
     writer.Close();
 }