我正在尝试将大型视频文件(250mb)加载到浏览器中。该文件很大,因此我尝试一次加载一定数量的字节,但是由于我尝试更改bufferSize而没有结果,因此问题似乎出在其他地方。
MemoryStream ms = new MemoryStream();
using (FileStream fs = File.Open(Server.MapPath(path), FileMode.Open))
{
fs.CopyTo(ms, 10000);
}
在CopyTo方法中引发异常。
提前致谢。
最佳答案
Steam.CopyTo不会链接流以让它们按需复制数据,而是立即复制所有数据。
内存流旨在将所有数据永久保存在内存中-即使临时复制缓冲区很小,这对于大文件也不是一个好主意。
您可以尝试使用文件流本身,或者如果这会导致性能问题,则BufferedStream可能会帮助您-仅将文件的某些部分保留在内存中。
关于c# - Stream.CopyTo抛出System.OutOfMemoryException C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47559978/