首頁 >後端開發 >C++ >在.NET中復制流內容的最佳方法是什麼?

在.NET中復制流內容的最佳方法是什麼?

Barbara Streisand
Barbara Streisand原創
2025-01-31 09:11:081005瀏覽

What are the Best Methods for Copying Stream Contents in .NET?

.NET流內容複製方法詳解

在編程中,複製一個流的內容到另一個流是一個常見任務。雖然有多種方法可以實現這一點,但.NET框架提供了一些內置方法來簡化這個過程。

.NET 4.5及以上版本方法:Stream.CopyToAsync

.NET 4.5中引入的Stream.CopyToAsync提供了一種異步複製流內容的方法。此方法返回一個Task,可以在復制操作完成後繼續執行。

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

.NET 4.0及以上版本方法:Stream.CopyTo

對於.NET 4.0及以上版本,Stream.CopyTo方法提供了一種同步方法。它直接將輸入流的內容複製到輸出流,而無需返回Task。

<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>

此方法允許進度報告,並且適用於無法獲得流Length屬性的場景。

以上是在.NET中復制流內容的最佳方法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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