我正在尝试下载一个几百 MB 的 .gz 文件,并在 C# 中将其转换为一个很长的字符串。
using (var memstream = new MemoryStream(new WebClient().DownloadData(url)))
using (GZipStream gs = new GZipStream(memstream, CompressionMode.Decompress))
using (var outmemstream = new MemoryStream())
{
gs.CopyTo(outmemstream);
string t = Encoding.UTF8.GetString(outmemstream.ToArray());
Console.WriteLine(t);
}
Run Code Online (Sandbox Code Playgroud)
我的测试网址:https : //commoncrawl.s3.amazonaws.com/crawl-data/CC-MAIN-2017-47/segments/1510934803848.60/wat/CC-MAIN-20171117170336-20171117190302twarc0z.
memstream 的长度为 283063949。程序在它初始化的那一行停留了大约 15 秒,在此期间我的网络被破坏了,这是有道理的。
outmemstream 的长度只有 548。
写入命令行的是压缩文档的第一行。它们不是乱码。我不知道如何得到其余的。