1.      /// <summary>
  2. /// 压缩方法
  3. /// </summary>
  4. public static string CompressString(string str)
  5. {
  6. string compressString = "";
  7. byte[] compressBeforeByte = Encoding.GetEncoding("UTF-8").GetBytes(str);
  8. byte[] compressAfterByte = Compress(compressBeforeByte);
  9. compressString = Convert.ToBase64String(compressAfterByte);
  10. return compressString;
  11. }
  12.  
  13. public static byte[] Compress(byte[] data)
  14. {
  15. try
  16. {
  17. MemoryStream ms = new MemoryStream();
  18. GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true);
  19. zip.Write(data, , data.Length);
  20. zip.Close();
  21. byte[] buffer = new byte[ms.Length];
  22. ms.Position = ;
  23. ms.Read(buffer, , buffer.Length);
  24. ms.Close();
  25. return buffer;
  26.  
  27. }
  28. catch (Exception e)
  29. {
  30. throw new Exception(e.Message);
  31. }
  32. }
  33.  
  34. /// <summary>
  35. /// 字符串解压缩
  36. /// </summary>
  37. public static string DecompressString(string str)
  38. {
  39. string compressString = "";
  40. byte[] compressBeforeByte = Convert.FromBase64String(str);
  41. byte[] compressAfterByte = Decompress(compressBeforeByte);
  42. compressString = Encoding.GetEncoding("UTF-8").GetString(compressAfterByte);
  43. return compressString;
  44. }
  45.  
  46. public static byte[] Decompress(byte[] data)
  47. {
  48. try
  49. {
  50. MemoryStream ms = new MemoryStream(data);
  51. GZipStream zip = new GZipStream(ms, CompressionMode.Decompress, true);
  52. MemoryStream msreader = new MemoryStream();
  53. byte[] buffer = new byte[0x1000];
  54. while (true)
  55. {
  56. int reader = zip.Read(buffer, , buffer.Length);
  57. if (reader <= )
  58. {
  59. break;
  60. }
  61. msreader.Write(buffer, , reader);
  62. }
  63. zip.Close();
  64. ms.Close();
  65. msreader.Position = ;
  66. buffer = msreader.ToArray();
  67. msreader.Close();
  68. return buffer;
  69. }
  70. catch (Exception e)
  71. {
  72. throw new Exception(e.Message);
  73. }
  74. }

C# GZip对字符串压缩和解压的更多相关文章

  1. C# 使用GZip对字符串压缩和解压

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  2. GZip对字符串压缩和解压

    /// <summary> /// 压缩 /// </summary> /// <param name="value">需要压缩字符串</ ...

  3. Linux下的压缩和解压

    1. gzip, bzip2 能否直接压缩目录呢?不可以 2. 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令.压缩:gzip 1.txt bzip2 1.txt解压:gzip -d 1 ...

  4. 对数据进行GZIP压缩和解压

    public class GzipUtils { /** * 对字符串进行gzip压缩 * @param data * @return * @throws IOException */ public ...

  5. C#实现通过Gzip来对数据进行压缩和解压

    C#实现通过Gzip来对数据进行压缩和解压 internal static byte[] Compress(byte[] data) { using (var compressedStream = n ...

  6. VB6进行GZIP解压&C#进行GZIP压缩和解压

    VB进行GZIP解压的,DLL是系统的,如果没有 [点击下载] Option Explicit 'GZIP API '----------------------------------------- ...

  7. 使用pako.js实现gzip的压缩和解压

    poko.js可至Github下载:https://github.com/nodeca/pako 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...

  8. Linux 时间日期类、搜索查找类、 压缩和解压类指令

    l 时间日期类 date指令-显示当前日期 基本语法 1) date (功能描述:显示当前时间) 2) date +%Y (功能描述:显示当前年份) 3) date +%m (功能描述:显示当前月份) ...

  9. linux常用命令:4文件压缩和解压命令

    文件压缩和解压命令 压缩命令:gzip.tar[-czf].zip.bzip2 解压缩命令:gunzip.tar[-xzf].unzip.bunzip2 1. 命令名称:gzip 命令英文原意:GNU ...

随机推荐

  1. composer安装

    1.首先到php.net下载对应版本的php,zip版本即可,注意windows需要vc11运行库支持 2.配置path路径添加对php解压目录的引用 3.将php.ini-development  ...

  2. JS请求服务器并使页面跳转(转)

    前段时间在项目中用到了前台框架EasyUI,各种组件都是差不多都是用js来渲染的,这样一些页面请求就必须用js代码来写. 但是js请求就不和html请求的玩法不怎么相同,比如我要向服务器发送一个请求然 ...

  3. 思科交换机配置DHCP的四个方面

    这里我们主要讲解了思科交换机配置DHCP的相关内容.我们对网络拓扑先进行一下了解,然后对于其在进行一下说明,之后对于配置的代码和命令再进行一下解析. 思科交换机配置DHCP一.网络拓扑 思科交换机配置 ...

  4. Python 的简单图形界面编程【草】

    可用方案 Tkinter python官方附带,方便,但听说存在乱码问题 wxPython 更成熟一些,但需要额外安装(大约50M) pyQt 授权不够宽松 最短代码 Tkinter 待补充 wxPy ...

  5. 使用 SoapUI 测试ASP.NET Web API

    我们为不同的目的开发了很多web服务,经过授权的用户就可以访问和使用这些web服务.soapUI 是一个强大的测试web服务的工具,他不仅可以测试SOAP服务,他也支持测试RESTful服务.在这里我 ...

  6. Expert 诊断优化系列------------------内存不够用么?

    现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...

  7. 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)

    Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳 ...

  8. Linux 定时任务

    200 ? "200px" : this.width)!important;} --> 介绍 本篇主要介绍Linux定时任务命令crontab的用法,crontab是定时任务 ...

  9. 干掉Unity3D

    我为什么想干掉Unity3D? 这个问题容我不答,每个做技术的人总有一些完美主义. 你使用u3d的过程中是不是痛并快乐着呢. 就从两个国内具有相当普遍性的痛点说起. il2cpp,unity作出了这个 ...

  10. Go语言实战 - revel框架教程之MongDB的最佳搭档revmgo

    由于revel框架本身对于model层的编写没有提供任何指导,所以在设计这部分的时候就有些犹豫,反复斟酌到底怎样才算是最佳实践. 我在做山坡网的时候刚开始也纠结了一下,拿不准mongodb的sessi ...