byte[] 和 stream 转换问题!

yanam003 2007-04-05 05:16:19
string sPath = "C:\\Documents and Settings\\Administrator\\My Documents\\My Pictures\\82501.jpg";
FileStream fStream = new FileStream(sPath,FileMode.Open);

long iLen = fStream.Length;
byte[] bts = new byte[iLen] ;
fStream.Write(bts,0,bts.Length);


Stream stream = new MemoryStream(bts,0,bts.Length);


请高手指教一下,上面这种方式把一个Stream转换成byte[]再转换成Stream对不对?

如果对的话,那么再执行下面的步骤怎么就会出错?

Image image = Image.FromStream(stream);

这中间是不是有什么问题啊?多谢了!
...全文
306 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanam003 2007-04-05
  • 打赏
  • 举报
回复
已经解决了!谢了!
yanam003 2007-04-05
  • 打赏
  • 举报
回复
错了上面的fStream.Write(bts,0,bts.Length);应该是fStream.Reade(bts,0,bts.Length);我的意思是把fStream写入bts里,在把bts转成stream.
noky 2007-04-05
  • 打赏
  • 举报
回复
改为
FileStream readStream = new FileStream(sPath, FileMode.Open);
FileStream writerStream = new FileStream(str, FileMode.CreateNew);//str是你要写入的文件名
BinaryReader reader = new BinaryReader(readStream);
BinaryWriter writer = new BinaryWriter(writerStream);
byte[] bts = reader.ReadBytes(readStream.Length);
writer.Write(bts, 0, bts.Length);
noky 2007-04-05
  • 打赏
  • 举报
回复
long iLen = fStream.Length;
byte[] bts = new byte[iLen] ;
这个时候你的bts数组中是空的,什么都没有写入,只是定义了数组的长度。
然后你fStream.Write(bts,0,bts.Length);
你什么都没有写入进去,淡然会出错了。
你需要一个读写器进行读写

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧