相关疑难解决方法(0)

MemoryStream 中的 GZipStream 只返回几百字节

我正在尝试下载一个几百 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。

写入命令行的是压缩文档的第一行。它们不是乱码。我不知道如何得到其余的。

c# gzip memorystream

5
推荐指数
1
解决办法
1320
查看次数

标签 统计

c# ×1

gzip ×1

memorystream ×1