gpt4 book ai didi

c# - 在两个目的地复制流内容

转载 作者:行者123 更新时间:2023-11-30 23:13:16 24 4
gpt4 key购买 nike

我知道可以使用 sourceStream.CopyTo(targetStream); 将一个流复制到另一个流,但我想将 sourceStream 的内容复制到 中的两个目标流>两个不同的任务。当我两次调用此方法时,第二次流为空。

这可能吗?一种简单的方法是将流内容加载到内存中,然后将其复制到目标上,但这可能会导致 OutOfMemoryException

如果这很重要,我使用的是 .Net 4.5

最佳答案

如果您同时将其复制到两个目的地,则类似:

byte[] buffer = new byte[SOME_SIZE];

int bytesRead;
while((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0)
{
dest1.Write(buffer, 0, bytesRead);
dest2.Write(buffer, 0, bytesRead);
}

这会遍历输入流一次,将每个 block 写入两个输出。这几乎就是 CopyTo 在内部所做的——唯一的区别是第二个输出。

关于c# - 在两个目的地复制流内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43717853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com