社区
C#
帖子详情
C#中如何解压gzip压缩后的字符流?
qugui
2005-12-24 12:51:57
我现在得到一网页返回的流是gzip压缩的,我想要解压后显示原来的内容,请高手赐教.
...全文
1422
6
打赏
收藏
C#中如何解压gzip压缩后的字符流?
我现在得到一网页返回的流是gzip压缩的,我想要解压后显示原来的内容,请高手赐教.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
marvelstack
2005-12-25
打赏
举报
回复
http://hardrock.cnblogs.com/archive/2005/12/23/303209.html
qugui
2005-12-24
打赏
举报
回复
你们说的不行呀,的到的数据在IE里面可以解开,但在程序里解不开.
tangyong12
2005-12-24
打赏
举报
回复
/// <summary>
/// 压缩文件流
/// </summary>
/// <param name="uncompressedString"></param>
/// <returns></returns>
static public string Compress(string uncompressedString)
{
byte[] byteData = System.Text.Encoding.UTF8.GetBytes(uncompressedString);
MemoryStream ms = new MemoryStream();
Stream s = new GZipOutputStream(ms);
s.Write(byteData,0,byteData.Length);
s.Close();
byte[] compressData = (byte[])ms.ToArray();
ms.Flush();
ms.Close();
return System.Convert.ToBase64String(compressData,0,compressData.Length);
}
/// <summary>
/// 减压文件流
/// </summary>
/// <param name="comppressedString"></param>
/// <returns></returns>
static public string DeCompress(string comppressedString)
{
int size = 0;
string uncompressString = string.Empty;
StringBuilder sb = new StringBuilder(40960);
int totalLength = 0;
byte[] byteInput = System.Convert.FromBase64String(comppressedString);
byte[] writeData = new byte[4096];
Stream s = new GZipInputStream(new MemoryStream(byteInput));
while(true)
{
size = s.Read(writeData,0,writeData.Length);
if(size > 0)
{
totalLength += size;
sb.Append(System.Text.Encoding.UTF8.GetString(writeData,0,size));
}
else
{
break;
}
}
s.Flush();
s.Close();
return sb.ToString();
}
singlepine
2005-12-24
打赏
举报
回复
http://dev.csdn.net/develop/article/67/article/63/63929.shtm
c11_11_11
2005-12-24
打赏
举报
回复
帮你顶 顺便接点分
ah__fu
2005-12-24
打赏
举报
回复
using ICSharpCode.SharpZipLib.GZip;
public static byte[] Compress(Stream Source)
{
Debug.Assert(null != Source);
Source.Seek(0, SeekOrigin.Begin);
MemoryStream objMem = new MemoryStream();
GZipOutputStream objGzip = new GZipOutputStream(objMem);
const int BUFFER_SIZE = 1024 * 10;
byte[] arrBuffer = new byte[BUFFER_SIZE];
int nGetedCount = 0;
do
{
nGetedCount = Source.Read(arrBuffer, 0, BUFFER_SIZE);
objGzip.Write(arrBuffer, 0, nGetedCount);
} while(nGetedCount>0);
objGzip.Finish();
byte[] arrResult = objMem.ToArray();
objGzip.Close(); //压缩完成后,输出流就会被关闭
objGzip = null;
objMem.Close();
objMem = null;
return arrResult;
}
C#
开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载
主要内容有
C#
开发环境的使用、
C#
语言基础应用、字符串处理技术、数组和集合的使用、面向对象编程技术、数据结构与算法、Windows窗体基础、特色窗体界面、窗体控制技术、MDI窗体和继承窗体、Windows常用控件的使用、...
C#
开发经验技巧宝典
0695 如何使用
GZip
压缩
文件 427 0696 如何使用
GZip
解压
文件 428 0697 如何使用WinRAR
压缩
文件 429 0698 如何使用WinRAR
解压
文件 429 16.6 其他 430 0699 设置文件的访问模式 430 0700 如何在
C#
应用程序...
C#
编程经验技巧宝典
74 <br>0107 如何获得字符串
中
数字或字母的长度 74 <br>0108 如何获得字符串
中
某个数字的位置 75 <br>0109 获得字符串
中
汉字的个数 76 <br>0110 获得字符串
中
指定后几位字符 76 <br>0111 ...
XML,XSLT,AJAX三大技术打造开源多用户博客X3BLOG
屏弃了传统的控件开发方式,所有执行过程采用单向流的生成方式,使其对服务器CPU及内存资源的占用降至最低水平,并通过
gzip
压缩
进一步缩减服务器的网络带宽消耗,提高响应速度 。 无Session设计杜绝了用户会话无故...
X3BLOG v0.7.5.0
屏弃了传统的控件开发方式,所有执行过程采用单向流的生成方式,使其对服务器CPU及内存资源的占 <br>用降至最低水平,并通过
gzip
压缩
进一步缩减服务器的网络带宽消耗,提高响应速度 。 <br> 无Session设计杜绝...
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章