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

