将字节写入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;
但是,返回的data
的容量为ms
,而不是真正的ms
长度。
将ms
容量设置为其长度或分配data
并将ms
内容复制到其中是否更好(更快,更安全......)
答案 0 :(得分:2)
只需使用成员方法ms.ToArray()
答案 1 :(得分:2)
GetBuffer()旨在避免可能昂贵的数组分配。你可以使用ToArray()方法,你想要一个大小合适的byte []。
答案 2 :(得分:0)
当您不寻找随机位置时,您也可以使用流位置:
Debug.Log("All length: " + (int)ms.Position);