GFX*_*ade 1 c# wcf stream .net-3.5
我一直在尝试从源流到目标流执行基本复制.我以前一直在使用许多问题作为实现的好例子,例如如何将流保存到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);}
}
Run Code Online (Sandbox Code Playgroud)
如果它说没有数据,那么可能没有数据.
我的猜测是你已写入a MemoryStream然后将其作为inputparmaeter传递而不首先将其重绕.(所以它Position与它的相同Length- 意思是没有什么可读的.)这是一个常见的错误.
不管是什么问题,都不是那种方法.
如何判断源流是否包含正确的信息
在代码中?你不能 - 因为流无法通过"正确的信息"知道你的意思.您可以编写检查以期望流不是空的等等......但是如果您尝试复制空文件,那么当然会失败.没有任何更多信息,任何字节序列都可能是正确的.
| 归档时间: |
|
| 查看次数: |
360 次 |
| 最近记录: |