有没有简单的方法把MemoryStream的内容,输出到一个二进制文件当中?
如果我不想自己写一个for循环来一点一点读出MemoryStream然后写入一个FileStream,而是用一个简单的方法直接送给一个FileStream,可以做到吗?
------解决方案-------------------- MemoryStream mem = new MemoryStream();
FileStream fs = new FileStream(xxxx);
byte[] buff = mem.ToArray();
fs.Write(buff, 0, buff.Length);
------解决方案--------------------
这种方式我也有使用,但建议使用using,更加安全
using(MemoryStream mem = new MemoryStream())
{
using(FileStream fs = new FileStream(xxxx))
{
byte[] buff = mem.ToArray();
fs.Write(buff, 0, buff.Length);
}
}
但这种方式在并发大情况下不推荐使用,从代码上可以看出,它会占用mem.ToArray()容量的内存。如果你的mem对象中本身就有大量数据,并且是在大并发的环境下,那么服务器很容易挂掉。
其实你完全可以将for循环代码封装在一个函数中,就不用每次都重新写了。