2011-08-29 71 views
0

的字節寫入MemoryStream的對象,有必要讓潛在的緩衝區來保存到文件從MemoryStream獲取底層數據的最佳方法?

MemoryStream ms = new MemoryStream(); 
// ms.Write(...) 
// ms.Write(...) 
// etc... some bytes are written to the stream 

byte[] data = ms.GetBuffer(); 
int length = data.Length; 

但是返回datams能力,而不是真正的ms長度。

是更好(更快,更安全,...),以ms容量設置爲它的長度或分配datams內容複製到了嗎?

回答

1

只是用構件-方法ms.ToArray()

+0

非常感謝你 –

2

的GetBuffer()被設計,以避免潛在地昂貴的數組分配。你可以使用ToArray()方法,你想要一個大小合適的字節[]。

+0

感謝你正確的答案 –

0

當你不尋求各地隨機的地方,你也可以使用流位置:

Debug.Log("All length: " + (int)ms.Position); 
相關問題