刚刚发现一个比较奇怪的现象,从Stream复制数据到byte[]数组后,发现byte[]的数据都还是默认值,见代码:
/// <summary>
/// 从相册中完成获取图像
/// </summary>
private void OnPhotoChooserTaskComplete(object sender, PhotoResult e)
{
Stream ms = new MemoryStream();
e.ChosenPhoto.CopyTo(ms);
byte[] byteArray = new byte[ms.Length];
// 将ms的字节流复制到byteArray后,竟发现byteArray的数据都为0
ms.Read(byteArray, 0, byteArray.Length);
}后来才醒悟,原来ms拿完数据后,还要从里面读数据就得设置ms.Position = 0;
即是在
e.ChosenPhoto.CopyTo(ms);之后将ms的索引位置置为最开始值:ms.Position = 0;
解决Stream读取问题
本文介绍了一个关于从Stream复制数据到byte[]数组后发现数据默认为0的问题,并给出了正确的解决方案,即在复制后需将Stream的位置设回起点。
2045

被折叠的 条评论
为什么被折叠?



