C#中PHP的'gzuncompress'函数? C#中有类似PHPs 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();
}
}
另请注意,“inflate”/“deflate”方法类似,但使用的是 DeflateStream
。
请注意,为了方便起见,我在这里只使用了 byte[]
方法;您通常应该更喜欢基于 Stream
的 API,因为它可以更方便地扩展到大数据。
关于c# - PHP 在 C# 中的 'gzuncompress' 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7036925/