C#GZipStream到String

Bre*_*ett 6 .net c# vb.net

我需要一种方法将GZipStream写入字符串.

我在用:

GZipStream Decompress = new GZipStream(inFile, CompressionMode.Decompress)
Run Code Online (Sandbox Code Playgroud)

我尝试了几种方法,但无法搞清楚.有没有人有任何想法?

非常感谢,布雷特

Ric*_*ard 22

您有解压缩GZipStream,因此您需要从中读取数据.最简单的方法是GZipStream使用一个返回字符串StreamReaderReadToEnd方法来包装.

就像是:

string res;
using (var decompress = new GZipStream(inFile, CompressionMode.Decompress))
using (var sr = new StreamReader(decompress)) {
  res = sr.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)

(using语句确保inFile关闭并释放任何其他资源.)

注意,这确实inFile包含编码UTF-8或UTF-16的文本.二进制内容或其他文本编码可能会导致问题(您可以使用其他StreamReader构造函数覆盖编码).