C# 解压缩工具类GZip
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text; namespace 落地页测试代码
{
public class GZip
{
/// <summary>
/// 压缩
/// </summary>
/// <param name="text">文本</param>
public static string Compress(string text)
{
if (text=="")
return string.Empty;
byte[] buffer = Encoding.UTF8.GetBytes(text);
return Convert.ToBase64String(Compress(buffer));
} /// <summary>
/// 解压缩
/// </summary>
/// <param name="text">文本</param>
public static string Decompress(string text)
{
if (text=="")
return string.Empty;
byte[] buffer = Convert.FromBase64String(text);
using (var ms = new MemoryStream(buffer))
{
using (var zip = new GZipStream(ms, CompressionMode.Decompress))
{
using (var reader = new StreamReader(zip))
{
return reader.ReadToEnd();
}
}
}
} /// <summary>
/// 压缩
/// </summary>
/// <param name="buffer">字节流</param>
public static byte[] Compress(byte[] buffer)
{
if (buffer == null)
return null;
using (var ms = new MemoryStream())
{
using (var zip = new GZipStream(ms, CompressionMode.Compress, true))
{
zip.Write(buffer, , buffer.Length);
}
return ms.ToArray();
}
} /// <summary>
/// 解压缩
/// </summary>
/// <param name="buffer">字节流</param>
public static byte[] Decompress(byte[] buffer)
{
if (buffer == null)
return null;
return Decompress(new MemoryStream(buffer));
} /// <summary>
/// 压缩
/// </summary>
/// <param name="stream">流</param>
public static byte[] Compress(Stream stream)
{
if (stream == null || stream.Length == )
return null;
return Compress(StreamToBytes(stream));
} /// <summary>
/// 解压缩
/// </summary>
/// <param name="stream">流</param>
public static byte[] Decompress(Stream stream)
{
if (stream == null || stream.Length == )
return null;
using (var zip = new GZipStream(stream, CompressionMode.Decompress))
{
using (var reader = new StreamReader(zip))
{
return Encoding.UTF8.GetBytes(reader.ReadToEnd());
}
}
}
/// <summary>
/// 流转换为字节流
/// </summary>
/// <param name="stream">流</param>
public static byte[] StreamToBytes(Stream stream)
{
stream.Seek(, SeekOrigin.Begin);
var buffer = new byte[stream.Length];
stream.Read(buffer, , buffer.Length);
return buffer;
}
}
}
C# 解压缩工具类GZip的更多相关文章
- GZIP压缩、解压缩工具类
GZIP压缩.解压缩工具类: public class GZIPUtiles { public static String compress(String str) throws IOExceptio ...
- ZIP解压缩工具类
import java.io.File; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.Expan ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2 新增解压缩工具类ZipHelper
在项目对文件进行解压缩是非常常用的功能,对文件进行压缩存储或传输可以节省流量与空间.压缩文件的格式与方法都比较多,比较常用的国际标准是zip格式.压缩与解压缩的方法也很多,在.NET 2.0开始,在S ...
- AntZipUtils【基于Ant的Zip压缩解压缩工具类】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 Android 压缩解压zip文件一般分为两种方式: 基于JDK的Zip压缩工具类 该版本存在问题:压缩时如果目录或文件名含有中文, ...
- ZIP解压缩文件的工具类【支持多级文件夹|全】
ZIP解压缩文件的工具类[支持多级文件夹|全] 作者:Vashon 网上有非常多的加压缩演示样例代码.可是都仅仅是支持一级文件夹的操作.假设存在多级文件夹的话就不行了. 本解压缩工具类经过多次检查及重 ...
- ZIP解压缩文件的工具类【支持多级目录|全】
ZIP解压缩文件的工具类[支持多级目录|全] 作者:Vashon 网上有很多的加压缩示例代码,但是都只是支持一级目录的操作,如果存在多级目录的话就不行了.本解压缩工具类经过多次检查及重构,最终分享给大 ...
- C#工具类:使用SharpZipLib进行压缩、解压文件
SharpZipLib是一个开源的C#压缩解压库,应用非常广泛.就像用ADO.NET操作数据库要打开连接.执行命令.关闭连接等多个步骤一样,用SharpZipLib进行压缩和解压也需要多个步骤.Sha ...
- java工具类——java将一串数据按照gzip方式压缩和解压缩
我要整理在工作中用到的工具类分享出来,也方便自己以后查阅使用,这些工具类都是我自己实际工作中使用的 import java.io.ByteArrayInputStream; import java.i ...
- java解压缩zip和rar的工具类
package decompress; import java.io.File; import java.io.FileOutputStream; import org.apache.tools.an ...
随机推荐
- Keil MDK5的ITM调试
https://blog.csdn.net/burgesskzg/article/details/77100453
- Fetch API & Async Await
Fetch API & Async Await const fetchJSON = (url = ``) => { return fetch(url, { method: "G ...
- NLP语义匹配
参考资料 [搜狗语义匹配技术前沿]https://www.jiqizhixin.com/articles/2018-10-25-16?from=synced&keyword=%E6%90%9C ...
- 鼠标拖动DOM
自己收藏,使用angualrjs的directive些的鼠标拖动DOM.... <!DOCTYPE html> <html lang="en"> <h ...
- 第一章 Python基本语法元素分析(二)
1.3 实例1:温度转换 根据华氏和摄氏温度定义,利用转换公式如下: C=(F-32)/1.8 F=C*1.8+32 代码如下: 运行结果: 1.4 Python程序语法元素分析 注释:不被程 ...
- php对某个页面设置基础认证登录设置
记录下. 对某个页面设置认证 代码最开始添加: <?php $user = 'test'; $password = '111111'; // 通过HTTP认证进行验证 if (!isset($_ ...
- BZOJ 3000: Big Number (数学)
题目: https://www.lydsy.com/JudgeOnline/problem.php?id=3000 题解: 首先n很大,O(n)跑不过,那么就要用一些高端 而且没听过 的东西——sti ...
- Educational Codeforces Round 63 (Rated for Div. 2)
传送门 A. Reverse a Substring 题意: 给你一串 s,让你判断能否通过反转区间[l,r]的元素,使得反转后的串的字典序小于 s: 如果能,输出 "YES",并 ...
- laravel windows安装
第一步安装composer 下载地址:https://getcomposer.org/ 第二步:更改laravel下载地址 选项一.全局配置(推荐) $ composer config -g repo ...
- CMakeList.txt(3): 一个cmake实例
介绍一个比较实用的例子,即包含生成静态库又包含引入外部头文件和链接库的cmake demo. 先按照工程规范建立工程目录,并编写代码,以下面的工程目录为例进行解释这个例子,工程的目录结构为: 1. 编 ...