//怎么读也读不出来的代码
public override object Execute(object parameter)
{
using (System.IO.MemoryStream stream = parameter as System.IO.MemoryStream)
{
using (System.IO.BinaryWriter writer = new System.IO.BinaryWriter(System.IO.File.OpenWrite(File)))
{
byte[] BUFFER = new byte[stream.Length];
stream.Read(BUFFER, 0, (int)stream.Length);
stream.Flush();
writer.Write(BUFFER, 0, (int)stream.Length);
writer.Flush();
stream.Close();
writer.Close();
}
}
return null;
}
//运行正常的代码
public override object Execute(object parameter)
{
using (System.IO.MemoryStream stream = parameter as System.IO.MemoryStream)
{
using (System.IO.BinaryWriter writer = new System.IO.BinaryWriter(System.IO.File.OpenWrite(File)))
{
stream.Position = 0;
byte[] BUFFER = new byte[stream.Length];
stream.Read(BUFFER, 0, (int)stream.Length);
stream.Flush();
writer.Write(BUFFER, 0, (int)stream.Length);
writer.Flush();
stream.Close();
writer.Close();
}
}
return null;
}
//stream.Position = 0;耽误了我的4个小时
本文解决了一个关于使用System.IO.MemoryStream时出现的问题,即忘记设置stream.Position=0;导致数据读写异常的情况。通过对比错误代码与修复后的正确代码,详细说明了如何避免此类错误。
89

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



