GZip对字符串压缩和解压
/// <summary>
/// 压缩
/// </summary>
/// <param name="value">需要压缩字符串</param>
/// <returns>结果</returns>
public static string Compression(string value)
{
byte[] data = Encoding.UTF8.GetBytes(value);
using (MemoryStream ms = new MemoryStream())
{
using (GZipStream compressedzipStream = new GZipStream(ms, CompressionMode.Compress, true))
{
compressedzipStream.Write(data, , data.Length);
}
return Convert.ToBase64String(ms.ToArray());
}
} /// <summary>
/// 解压
/// </summary>
/// <param name="value">需要解压字符串</param>
/// <returns>结果</returns>
public static string Decompress(string value)
{
byte[] data = Convert.FromBase64String(value);
using (MemoryStream ms = new MemoryStream(data))
{
using (GZipStream compressedzipStream = new GZipStream(ms, CompressionMode.Decompress))
{
using (MemoryStream outBuffer = new MemoryStream())
{
byte[] block = new byte[];
int bytesRead = compressedzipStream.Read(block, , block.Length);
outBuffer.Write(block, , bytesRead);
return Encoding.UTF8.GetString(outBuffer.ToArray());
}
}
}
}
/// <summary>
/// 解压(数据量过大的时候解压)
/// </summary>
/// <param name="value">需要解压字符串</param>
/// <returns>结果</returns>
public static string Decompress(string value)
{
byte[] data = Convert.FromBase64String(value);
using (MemoryStream ms = new MemoryStream(data))
{
using (GZipStream compressedzipStream = new GZipStream(ms, CompressionMode.Decompress))
{
using (MemoryStream outBuffer = new MemoryStream())
{
byte[] block = new byte[];
int bytesRead;
do
{
bytesRead = compressedzipStream.Read(block, , block.Length);
outBuffer.Write(block, , bytesRead);
} while (bytesRead > );
return Encoding.UTF8.GetString(outBuffer.ToArray());
}
}
}
}
/// <summary>
/// 测试
/// </summary>
public static void TT()
{
var json = "{\"Key\":\"Value\"}";
var ys = Compression(json);
var jy = Decompress(ys);
}
GZip对字符串压缩和解压的更多相关文章
- C# 使用GZip对字符串压缩和解压
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- C# GZip对字符串压缩和解压
/// <summary> /// 压缩方法 /// </summary> public static string CompressString(string str) { ...
- Linux下的压缩和解压
1. gzip, bzip2 能否直接压缩目录呢?不可以 2. 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令.压缩:gzip 1.txt bzip2 1.txt解压:gzip -d 1 ...
- 对数据进行GZIP压缩和解压
public class GzipUtils { /** * 对字符串进行gzip压缩 * @param data * @return * @throws IOException */ public ...
- C#实现通过Gzip来对数据进行压缩和解压
C#实现通过Gzip来对数据进行压缩和解压 internal static byte[] Compress(byte[] data) { using (var compressedStream = n ...
- VB6进行GZIP解压&C#进行GZIP压缩和解压
VB进行GZIP解压的,DLL是系统的,如果没有 [点击下载] Option Explicit 'GZIP API '----------------------------------------- ...
- 使用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 ...
- Linux 时间日期类、搜索查找类、 压缩和解压类指令
l 时间日期类 date指令-显示当前日期 基本语法 1) date (功能描述:显示当前时间) 2) date +%Y (功能描述:显示当前年份) 3) date +%m (功能描述:显示当前月份) ...
- linux常用命令:4文件压缩和解压命令
文件压缩和解压命令 压缩命令:gzip.tar[-czf].zip.bzip2 解压缩命令:gunzip.tar[-xzf].unzip.bunzip2 1. 命令名称:gzip 命令英文原意:GNU ...
随机推荐
- Camera2点击对焦实现
https://www.jianshu.com/p/76225ac72b56 android从5.0开始,废弃了原有的Camera接口,提供了全新的Camera2接口.Camera2接口为了给app提 ...
- Subversion版本控制系统的安装和操作.
SVN的简单介绍 SVN是Subversoin的简称,是一个开源的版本控制系统 Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,他可以记录每一次文件和目录的 ...
- python3 获取cookie解决方案
python3 获取cookie解决方案 方案一: 利用selenium+phantomjs无界面浏览器的形式访问网站,再获取cookie值: from selenium import webdriv ...
- 理解 neutron
之前大师发个结构图. understanding_neutron.pdf 自己走读了代码: 1. get_extensions_path() # 在/opt/stack/neutron/neutro ...
- Python中对象的引用与复制
在python进行像b = a这样的赋值时,只会创建一个对a的新引用,使a的引用计数加1,而不会创建新的对象: >>> a = 'xyz' >>> import s ...
- 【Python022--递归】
一.递归 1.写一个求阶乘的函数 --正整数阶乘指从1乘以2乘以3乘以4一直乘到所要求的数 --普通的代码编写方式: def factorial(n): result = n for i ...
- main.dart
import 'package:flutter/material.dart'; import 'package:flysnow_2ull/index/index.dart'; // 导入index.d ...
- Python 实用技巧
模块相关 导入模块时,可以通过模块的 __file__ 属性查看模块所在磁盘的路径位置,参考:关于Python包和模块的10个知识清单 Pip 安装Pip 方法一: sudo apt-get purg ...
- Centos7.5安装VirtualBox-5.2
1.查看自己的内核版本 [root@localhost /]# rpm -qa |grep kernel kernel-tools-libs-3.10.0-862.6.3.el7.x86_64 ker ...
- [转]otunnel:一个和lcx差不多的端口转发的工具
这是一个采用Golang编写的和lcx差不多的端口转发的工具,用来突破内网环境 项目地址 ooclab/otunnel 下载地址(内涵各大平台) http://dl.ooclab.com/otunne ...