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(); }