c#中的流长度有限制吗

本文关键字:有限制 | 更新日期: 2023-09-27 18:24:40

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

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

然而,我不知道流的长度。根据Fiddler的说法,流长度大于15000000字节。

有长度限制吗?

c#中的流长度有限制吗

是的,它是9223372036854775807字节(8388608地形字节)

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

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

Stream.Lengthlong,所以它的(正)极限是2^63。对你来说应该没问题。

我必须将一个2.9 GB的加密文件读入内存并解密。在读入内存的过程中(使用Bouncy Castle),我会在64位模式下运行流长度限制异常。如果我将文件从加密的数据文件解密到另一个文件,然后使用FileReader将其读取到内存中,我不会得到错误,最终整个文件都在内存中。我真的需要直接解密到内存中,因为客户不希望PII数据在任何时候都未加密地驻留在磁盘上。那么,是什么原因导致流长度异常呢?