2011-08-29 72 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); 
相关问题