c#中的流长度是否有限制?

时间:2012-02-14 17:31:30

标签: c# stream

我需要以这种方式阅读流:

using(HttpWebResponse response = (HttpWebResponse)request.getResponse())
{
  using(Stream answer = response.getResponseStream())
  {
    // waiting for a while to read next
  }
}

但是,我不知道流长度。根据Fiddler,流长度大于15,000,000字节。

是否有长度限制?

4 个答案:

答案 0 :(得分:5)

是的,它是9,223,372,036,854,775,807字节(8,388,608 terrabytes)

答案 1 :(得分:3)

流长度没有(合理的)限制。

您正在寻找HTTP响应的ContentLength属性。

答案 2 :(得分:1)

Stream.Lengthlong,因此其(正)限制为2^63。对你来说应该没事。

答案 3 :(得分:0)

我必须将一个2.9 GB的加密文件读入内存并解密。在读入内存的过程中(使用Bouncy Castle),我得到了以64位模式运行的流长度限制异常。如果我将文件从加密的数据文件解密为另一个文件,然后使用FileReader将其读入内存,则不会收到错误,并且最终会将整个文件存储在内存中。我真的需要直接解密到内存中,因为客户不希望PII数据随时存储在磁盘上,并且未经加密。那么,什么会导致此“流长度异常”?