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 ...
随机推荐
- quotes 整站数据爬取存mongo
安装完成scrapy后爬取部分信息已经不能满足躁动的心了,那么试试http://quotes.toscrape.com/整站数据爬取 第一部分 项目创建 1.进入到存储项目的文件夹,执行指令 scra ...
- array数组(n,1)和(n,)互相转换
data.shape #(172,1) result = [arr[0] for arr in data] result.shape #(172,) (172,1)表示是一个(172,1)shape大 ...
- U68364 _GC滑迷宫
题目背景 _GC买了一双蔡徐坤一代. 题目描述 _GC进入了一个n*m的迷宫.本题的特殊之处在于,_GC只能滑着走.具体来说就是,选定一个方向后,_GC会一直向该方向滑,直到撞到墙.会给出_GC的起始 ...
- Oracle中的AWR,全称为Automatic Workload Repository
Oracle中的AWR,全称为Automatic Workload Repository,自动负载信息库.它收集关于特定数据库的操作统计信息和其他统计信息,Oracle以固定的时间间隔(默认为1个小时 ...
- vue stylus 格式化问题
IDE是vscode 安装了.vetur插件 由于stylus可以仅用缩进不用写大括号之类的,所以十分方便, 但有个问题,按alt shift F 格式化时,vetur这个插件会默认添加上正常css的 ...
- [leetcode] 5.Longest Palindromic Substring-2
想了很多方法 搞轴对称,算对称轴,偶数都高出了一堆0.5在那加加减减,最后发现在移轴之前可能就返回了. class Solution: def longestPalindrome(self, s: s ...
- CPU监控
题目描述 Bob需要一个程序来监视CPU使用率.这是一个很繁琐的过程,为了让问题更加简单,Bob会慢慢列出今天会在用计算机时做什么事. Bob会干很多事,除了跑暴力程序看视频之外,还会做出去玩玩和用鼠 ...
- web技术应用分享
https://www.helloweba.com/nav.html Helloweba为广大前端开发者收录了常用实用的前端资源工具,方便大家学习和查阅. https://www.hello ...
- 第五周博客作业<西北师范大学|李晓婷>
1.助教博客链接:https://home.cnblogs.com/u/lxt-/ 2.作业要求链接:https://www.cnblogs.com/nwnu-daizh/p/10527959.htm ...
- IDEA 常用配置
调节代码字体大小 设置:File --- Settings... --- Editor --- General --- 勾选Change font size(Zoom) with Ctrl + Mou ...