gpt4 book ai didi

C# .NET 3.5 在使用基本示例时不复制流

转载 作者:太空宇宙 更新时间:2023-11-03 18:40:29 25 4
gpt4 key购买 nike

我一直在尝试进行从源流到目标流的基本复制。我一直在使用许多以前提出的问题作为实现的好例子,例如 How do I save a stream to a file in C#? .但是,当下面的代码执行时,它会在第一次运行时退出,说明没有要复制的数据。我的问题是如何判断源流是否包含从一个文件流式传输到另一个文件的正确信息?

从上面的链接看代码是这样的:

public static void CopyStream(Stream input, Stream output) 
{
byte[] buffer = new byte[8192];
int len;
while ( (len = input.Read(buffer, 0, buffer.Length)) > 0)
{output.Write(buffer, 0, len);}
}

最佳答案

如果它说没有数据,那么大概是没有数据。

我的 猜测 是您已经写入了 MemoryStream,然后将其作为 input 参数传递进来,而没有先倒带它。 (因此它的 Position 与其 Length 相同 - 意味着没有什么可读的。)这是一个常见的错误。

不管有什么问题,都不是那个方法。

how can you tell if the source stream contains the correct information

在代码中?你不能——因为流无法知道你所说的“正确信息”是什么意思。您可以编写检查以期望流不为空,等等...但是如果您曾经尝试复制一个空文件,那当然会失败。没有任何更多信息,任何字节序列都可能是正确的。

关于C# .NET 3.5 在使用基本示例时不复制流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9503964/

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