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, 0, 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 == 0) return null; return Compress(StreamToBytes(stream)); } /// <summary> /// 解压缩 /// </summary> /// <param name="stream">流</param> public static byte[] Decompress(Stream stream) { if (stream == null || stream.Length == 0) 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(0, SeekOrigin.Begin); var buffer = new byte[stream.Length]; stream.Read(buffer, 0, buffer.Length); return buffer; } } }
人生的成功不在于拿到一副好牌,而是怎样将坏牌打好。
标签:
C#常用工具类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统