常用的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(); } } }
該程序運行效果: