求教!C#中使用MemoryStream 时出异常OutOfMemoryException

YuccaWei 2011-10-14 04:17:39
先上代码:

//stream 是压缩内容,改功能负责解压一段从客户端接收过来的压缩内容byte[] bs 之前处理了stream = new MemoryStream(binData);
private string GZipDecompress(Stream stream)
{
byte[] buffer = new byte[100];
int length = 0;
try
{
using (GZipStream gz = new GZipStream(stream, CompressionMode.Decompress))
{
using (MemoryStream msTemp = new MemoryStream())
{
while ((length = gz.Read(buffer, 0, buffer.Length)) != 0)
{
msTemp.Write(buffer, 0, length);
}
//此处出错
return System.Text.Encoding.GetEncoding("GB2312").GetString(msTemp.ToArray());
}
}
}
catch (Exception e)
{
//异常处理,暂时省略
}
}


报错内容:OutOfMemoryException 。。。。。。

对数据流这一块,之前接触不多,这个方法也还是在网上找到的,目前没搜到合适的解决方式。
只知道需要把数据分块处理,或提前申请内存。但不知如何处理。望各位大侠赐教。
...全文
656 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
YuccaWei 2011-10-14
  • 打赏
  • 举报
回复
为啥没人进来啊,呼唤高手,另,帮忙顶上去的也会有分哦!(*^__^*)
YuccaWei 2011-10-14
  • 打赏
  • 举报
回复
木人理我,再顶上去
YuccaWei 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sq_zhuyi 的回复:]
数据过大会导致溢出
[/Quote]
是的,数据小的时候没问题,当数据压缩后大约40多M时就会抛异常。悲剧的是项目中数据一般都这么大。
路人乙e 2011-10-14
  • 打赏
  • 举报
回复
数据过大会导致溢出
YuccaWei 2011-10-14
  • 打赏
  • 举报
回复
自己先顶一个

110,571

社区成员

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

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

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