PHP的'gzuncompress'函数在c# ?c#中是否有类似php gzuncompress的功能?
您将使用GZipStream
读取数据。如果源本身是Stream
,这尤其方便,但如果您有byte[]
,只需使用new MemoryStream(existingData)
:
private static byte[] GZipUncompress(byte[] data)
{
using(var input = new MemoryStream(data))
using(var gzip = new GZipStream(input, CompressionMode.Decompress))
using(var output = new MemoryStream())
{
gzip.CopyTo(output);
return output.ToArray();
}
}
也:
private static byte[] GZipCompress(byte[] data)
{
using(var input = new MemoryStream(data))
using (var output = new MemoryStream())
{
using (var gzip = new GZipStream(output, CompressionMode.Compress, true))
{
input.CopyTo(gzip);
}
return output.ToArray();
}
}
还请注意,"充气"/"deflate"方法将是类似的,但使用DeflateStream
。
请注意,为了方便,我在这里只使用byte[]
方法;您通常应该更喜欢基于Stream
的API,因为它可以更方便地扩展到大数据。