.NET 4.0 New Feature - Stream.CopyTo

.NET 4.0 New Feature - Stream.CopyTo

.NET 4.0在Stream類別中新增了CopyTo方法,該方法有兩個多載版本CopyTo(Stream)、與CopyTo(Stream, Int32)

image

 

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

image

 

Link