我有一種方法將一個流複製到另一個流中。這是相當簡單和典型:什麼時候應該在C#中複製流時執行一次Flush()?
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
直接點'spender'。文件創建時爲什麼要小心?無論如何,您無法讀取它,直到流完成寫入。 –
只是一個性能問題,:-) –