文件数据写入错误
下载其他文件没有问题,但是下1.3M的ppt(经常下的文件都是50k左右)的时候出现很奇怪的问题。
用UltraEdit-32 打开对比文件发现仅缺少几个数据段
请高手指教,是不是我的下载代码不能下载大文件
private void DownFile(string netpath,string filename,string filetype)
{
//构造Web请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(netpath);
//发送请求,获取响应
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//使用到的读写流
Stream inStream = null;
FileStream fileStream = null;
try
{
//获得流
inStream = response.GetResponseStream();
//获得文件长度
long fileSizeInBytes = response.ContentLength;
//创建文件流对象
//MessageBox.Show(Application.StartupPath+@ "\ "+filename+ ".jw ");
fileStream = new FileStream(Application.StartupPath+@ "\ "+filename+ ".jw ", FileMode.OpenOrCreate, FileAccess.Write);
//读取数据缓冲区长度和缓冲区
int length = 1024;
byte[] buffer = new byte[1025];
//记录读取的长度
int bytesread = 0;
//从网络读取数据
while((bytesread = inStream.Read(buffer, 0, length)) > 0)
{
//把数据写入文件
fileStream.Write(buffer, 0, bytesread);
}
//MessageBox.Show( "写入结束 ");
}
catch(Exception fe)
{
MessageBox.Show( "文件创建/写入错误: "+fe.Message, "提示信息 ",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
finally
{
//关闭流
if(inStream != null)
{
inStream.Close();
}
if(fileStream != null)
{
fileStream.Close();
}
}
}
------解决方案--------------------int length = 1024;
byte[] buffer = new byte[1025];
1.3M当然放不下了