作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
作为discussed before ,当 BinaryReader 或 BinaryWriter 关闭时,其底层 Stream 也会关闭(aargh)。考虑这种情况:一个例程 R
被传递给一个 MemoryStream,比如 M
;我想向 M
写入一些内容,然后将其传递给另一个例程以进行更多处理(不一定是写入)。为方便起见,我想将 M
包装在 BinaryWriter 中以进行编写。写入后,我完成了 BinaryWriter 但不是 M
。
void R(MemoryStream M)
{
using (B = new BinaryWriter(M))
{
// write some stuff using B
}
S(M); // now pass M to another routine for further processing
}
但是,我无法在不关闭 M
的情况下处理 BinaryStream。
问:有没有办法做到以下任何一项?
最佳答案
你最好使用
byte[] buffer = ms.GetBuffer();
然后使用 Array.Copy() 方法复制字节数据。您可以自由地使用它创建新的流。
关于c# - 如何在 .NET 中将 Stream 设为 "fork"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1633672/
我是一名优秀的程序员,十分优秀!