【发布时间】:2012-10-09 20:58:09
【问题描述】:
我有一种方法可以将一个流复制到另一个流中。这是相当简单和典型的:
public static void CopyStream(Stream source, Stream destination)
{
byte[] buffer = new byte[32768];
int read;
while ((read = source.Read(buffer, 0, buffer.Length)) > 0)
{
destination.Write(buffer, 0, read);
}
}
当目标流是FileStream 时,我观察到在复制完成并且目标流关闭之前不会创建文件。我相信在复制流时不时调用destination.Flush() 会创建文件并在复制完成之前开始将内容写入磁盘,这会释放我系统中的内存。
这个destination.Flush() 电话应该在什么时候完成?我的算法循环中的每次迭代?每 N 次迭代?从来没有?
【问题讨论】:
-
在复制完成和目标流关闭之前创建文件是否重要?
-
直奔主题
spender。为什么要在创建文件时关心?在流完成写入之前,您无论如何都无法读取它。 -
只是性能问题,:-)
标签: c# .net stream filestream