.NET GZipStream compress and decompress

前端 未结 4 1820
无人及你
无人及你 2020-12-08 22:55

What is wrong with this code below. I always get FALSE, meaning after compression, decompressed data does not match original value.

public static bool Test()         


        
4条回答
  •  情深已故
    2020-12-08 23:07

    Here's my cleaned up version of the final solution:

    
      [Test]
      public void Test_zipping_with_memorystream()
      {
       const string sample = "This is a compression test of microsoft .net gzip compression method and decompression methods";
       var encoding = new ASCIIEncoding();
       var data = encoding.GetBytes(sample);
       string sampleOut;
       byte[] cmpData;
    
       // Compress 
       using (var cmpStream = new MemoryStream())
       {
        using (var hgs = new GZipStream(cmpStream, CompressionMode.Compress))
        {
         hgs.Write(data, 0, data.Length);
        }
        cmpData = cmpStream.ToArray();
       }
    
       using (var decomStream = new MemoryStream(cmpData))
       {
        using (var hgs = new GZipStream(decomStream, CompressionMode.Decompress))
        {
         using (var reader = new StreamReader(hgs))
         {
          sampleOut = reader.ReadToEnd();
         }
        }
       }
    
       Assert.IsNotNullOrEmpty(sampleOut);
       Assert.AreEqual(sample, sampleOut);
      }
    

提交回复
热议问题