GZIPStream压缩始终返回10个字节

时间:2016-10-20 08:24:14

标签: c# compression uwp gzipstream

我试图在我的UWP应用程序中压缩一些文本。我创建了这个方法,以便以后更容易:

public static byte[] Compress(this string s)
{
    var b = Encoding.UTF8.GetBytes(s);
    using (MemoryStream ms = new MemoryStream())
    using (GZipStream zipStream = new GZipStream(ms, CompressionMode.Compress))
    {
        zipStream.Write(b, 0, b.Length);
        zipStream.Flush(); //Doesn't seem like Close() is available in UWP, so I changed it to Flush(). Is this the problem?
        return ms.ToArray();
    }
}

但不幸的是,无论输入文本是什么,它总是返回10个字节。是因为我没有在.Close()上使用GZipStream吗?

1 个答案:

答案 0 :(得分:3)

您过早地返回字节数据。 Close()方法由Dispose()方法替换。因此,GZIP流只有在 >处理后才会写入{<1}}块。

using(GZipStream) {}