文档章节

gzip压缩与解压缩

朝天放歌
 朝天放歌
发布于 2016/08/12 13:09
字数 197
阅读 10
收藏 0
点赞 0
评论 0

话不多说,上代码。 GzipCompress在System.IO.Compression中。

/******************************************************************* 
 * FileName: GzipTool.cs
 * Author   : pilgrimzh
 * Date : 2016-08-12 13:08:21
 * Desc : 
 * 该工具用于对字节流进行Gzip压缩与解压缩
 * 
 * *******************************************************************/ 
 public  class GzipTool
    {

        /// <summary>
        /// gzip解压缩字节流
        /// </summary>
        /// <param name="src"></param>
        /// <returns></returns>
        public static byte[] Decompress(byte[] src)
        {
            MemoryStream decompressedMs = new MemoryStream();
            MemoryStream srcMs = new MemoryStream(src);
            using (GZipStream gzipstream = new GZipStream(srcMs, CompressionMode.Decompress, true))
            {
                gzipstream.CopyTo(decompressedMs);
            }

            return decompressedMs.GetBuffer();
        }

        /// <summary>
        /// gzip压缩字节流
        /// </summary>
        /// <param name="src"></param>
        /// <returns></returns>
        public static byte[] Compress(byte[] src)
        {
            MemoryStream compressedMs = new MemoryStream();
            
            using(GZipStream gzipstream = new GZipStream(compressedMs, CompressionMode.Compress, true))
            {
                MemoryStream srcMs = new MemoryStream(src);
                srcMs.CopyTo(gzipstream);
            }

            return compressedMs.GetBuffer();
        }
         
    }

© 著作权归作者所有

共有 人打赏支持
朝天放歌
粉丝 2
博文 18
码字总数 4175
作品 0
合肥
程序员

暂无相关文章

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 26分钟前 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 57分钟前 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

【转】JS浮点数运算Bug的解决办法

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎...

NickSoki ⋅ 今天 ⋅ 0

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 今天 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 今天 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部