尝试将Stream对象转换为byte []并使用以下方法:
public static byte[] ReadFully(System.IO.Stream input)
{
byte[] buffer = new byte[16*1024];
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
然而输入参数"输入"是用于2 GB的大文件,因此代码不会进入while循环,因此不会将其转换为字节数组。
对于较小的文件,它可以正常工作
答案 0 :(得分:1)
这就是Stream
的用途。
你没有将整个内容加载到byte[]
,你从Stream
读取一个小缓冲区并处理它,然后处理并读取下一个缓冲区。
如果你仍然需要使用字节[]:
您的应用似乎无法处理超过2^32 Bytes
内存,这意味着 32位。
尝试将其更改为 64位(在项目属性中转到构建并禁用Prefer 32 bit
)