.NET 4.0 New Feature - Stream.CopyTo
.NET 4.0在Stream類別中新增了CopyTo方法,該方法有兩個多載版本CopyTo(Stream)、與CopyTo(Stream, Int32)。
CopyTo方法主要功能為將當前的資料流內容複製到另一資料流,能讓我們快速的做資料流內容的複製,不需要像以往一樣需先將來源資料流內容讀出,再對目標資料流寫入,以達資料流複製的功用。
值得注意的是CopyTo方法是從當前資料流的目前位置開始做複製的動作。
完整範例如下,這個範例會建立一個MemoryStream,並將"Test Stream.CopyTo"字樣寫入產生的MemoryStream,接著建立一個FileStream,其對應的檔案為Test.Txt,再透過Stream.CopyTo將MemoryStream資料內容寫入FileStream。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
using (MemoryStream sourceStream = new MemoryStream(512))
{
using (StreamWriter sw = new StreamWriter(sourceStream))
{
sw.WriteLine("Test Stream.CopyTo");
sw.Flush();
sourceStream.Seek(0, SeekOrigin.Begin);
using (FileStream targetStream = new FileStream("Test.Txt", FileMode.Create))
{
sourceStream.CopyTo(targetStream);
}
}
}
}
}
}
運行後會在程式目錄下產生一個Test.Txt文字檔,其內容為"Test Stream.CopyTo"。