首頁 >後端開發 >C++ >如何在.NET中有效複製流內容?

如何在.NET中有效複製流內容?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-31 09:21:12648瀏覽

How to Efficiently Copy Stream Contents in .NET?

.NET流內容的高效複製方法

在編程中,將一個流的內容複製到另一個流是一個常見的操作。 .NET 提供了幾種實現此操作的方法。

使用Stream.CopyToAsync方法(.NET 4.5 )

.NET 4.5 中引入的 Stream.CopyToAsync 方法提供了一種異步複製流內容的方式:

<code class="language-csharp">input.CopyToAsync(output);</code>

此方法返回一個 Task,可以等待其完成以確保操作完成。它保持執行上下文,允許後續代碼在同一線程上繼續執行。

使用Stream.CopyTo方法(.NET 4.0 )

在 .NET 4.0 及更高版本中,Stream.CopyTo 方法提供了一種同步複製流的方式:

<code class="language-csharp">input.CopyTo(output);</code>

針對.NET 3.5及更早版本的自定義實現

對於 .NET 3.5 之前的版本,沒有內置方法。您必須使用循環手動複製內容:

<code class="language-csharp">public static void CopyStream(Stream input, Stream output)
{
    byte[] buffer = new byte[32768];
    int read;
    while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
    {
        output.Write(buffer, 0, read);
    }
}</code>

注意事項

  • CopyStream 中的緩衝區大小可以調整以優化性能。
  • 請注意,對於某些流實現,流長度可能不可用。

以上是如何在.NET中有效複製流內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn