C# 使用 MemoryStream 將數據寫入內存


常用的MemoryStream構造函數有以下3種。

1:MemoryStream() 該構造函數初始分配容量大小為0字節,隨着數據的不斷寫入,其容量可以不斷的自動擴展。一般在不確定數據內容大小的時候應用這種形式。

2:MemoryStream(byte[]) 和 MemoryStream 的無參數構造函數不同,通過該構造數的 MemoryStream 實例根據 byte 類型的字節數組進行初始化,並且實例的容量大小固定為字節數組的長度。由於實例的容量不能擴展,該構造函數一般用於數據不發生變化的場合。

3:MemoryStream(int capacity) 通過該構造函數創建初始容量大小為 capacity 的實例。並且實例容量大小可擴展。

 

完整代碼如下:

引入命名空間:

using System.IO;

完整代碼:

namespace MemoryStreamApp  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            //構造MemoryStream實例,並輸出初始分配容量及使用大小  
            MemoryStream mem = new MemoryStream();  
            Console.WriteLine("初始分配容量:{0}" , mem.Capacity);  
            Console.WriteLine("初始使用量:{0}" , mem.Length);  
            //將待寫入的數據從字符串轉換為字節數組  
            UnicodeEncoding encoder = new UnicodeEncoding();  
            byte[] bytes = encoder.GetBytes("新增數據");  
            //向內存流中寫入數據  
            for (int i = 1; i < 4; i++)  
            {  
                Console.WriteLine("第{0}次寫入新數據", i);  
                mem.Write(bytes, 0, bytes.Length);  
            }  
            //寫入數據后 MemoryStream 實例的容量和使用大小  
            Console.WriteLine("當前分配容量:{0}",mem.Capacity);  
            Console.WriteLine("當前使用量:{0}",mem.Length);  
            Console.ReadLine();  
        }  
    }  
}  


 

該程序運行效果:

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM