首页 新闻 搜索 专区 学院

BinaryReader 传入的stream的确有数据,但为什么第一次Read()的返回值就是0,导致陷入无限死循环

0
悬赏园豆:20 [已解决问题] 解决于 2012-10-16 09:25

using (IsolatedStorageFileStream fileStream = new               IsolatedStorageFileStream(filename, FileMode.Create, isf))
{
using (BinaryWriter writer = new BinaryWriter(fileStream))
{
var length = stream.Length; //此处可得到值194777
var buffer = new byte[1024];
int readCount = 0;
using (BinaryReader reader = new BinaryReader(stream))//此处是WP7图片选择器返回的stream
{
while (readCount < length)
{
int actual = reader.Read(buffer, 0, buffer.Length);//读到此处直接返回0
readCount += actual;//导致readCount 永远为0,死循环

writer.Write(buffer, 0, actual);
}
}
}
}如何解决

zhaowh的主页 zhaowh | 初学一级 | 园豆:27
提问于:2012-10-13 09:11
< >
分享
最佳答案
0

stream的Length长度不为0,Read的结果为0,估计是因为已到达stream的末尾,可以用Seek定位到开始

收获园豆:20
wny | 小虾三级 |园豆:592 | 2012-10-13 14:47

的确是这样,问题已经解决谢了

zhaowh | 园豆:27 (初学一级) | 2012-10-16 09:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册