/// <summary>
/// 将Gzip的byte数组读取为字符串
/// </summary>
/// <param name="bytes"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public static string ReadGzip(byte[] bytes, string encoding = "GB2312")
{
string result = string.Empty;
using (MemoryStream ms = new MemoryStream(bytes))
{
using (GZipStream decompressedStream = new GZipStream(ms, CompressionMode.Decompress))
{
using (StreamReader sr = new StreamReader(decompressedStream, Encoding.GetEncoding(encoding)))
{
result = sr.ReadToEnd();
}
}
}
return result;
} /// <summary>
/// 将字符串压缩成Gzip格式的byte数组
/// </summary>
/// <param name="str"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public static byte[] WriteGzip(string str, string encoding = "GB2312")
{
byte[] rawData = System.Text.Encoding.UTF8.GetBytes(str);
using (MemoryStream ms = new MemoryStream())
{
GZipStream compressedzipStream = new GZipStream(ms, CompressionMode.Compress, true);
compressedzipStream.Write(rawData, , rawData.Length);
compressedzipStream.Close();
return ms.ToArray();
}
} /// <summary>
/// 解压Gzip文件,返回字符串
/// </summary>
/// <param name="fileName">文件全路径</param>
/// <returns>字符串</returns>
public static string ReadGzipFromFile(string fileName)
{
using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
using (GZipStream decompressedStream = new GZipStream(fileStream, CompressionMode.Decompress))
{
StreamReader reader = new StreamReader(decompressedStream);
string result = reader.ReadToEnd();//重点
reader.Close();
return result;
}
}
}

外面可以通过File.ReadAllBytes()和File.WriteAllBytes()进行文件的操作。而GZIP文件的后缀名为.gz

灵感来源:http://www.cnblogs.com/gengaixue/p/3300664.html

C#对GZIP压缩和解压的更多相关文章

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

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

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

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

  3. Gzip压缩和解压

    /// <summary> /// 将传入字符串以GZip算法压缩后,返回Base64编码字符 /// </summary> /// <param name=" ...

  4. java GZIP压缩和解压

    最近碰到了一个按GZIP解压指定的输入流数据,备份下 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream ...

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

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

  6. 使用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 ...

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

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

  8. .net文件压缩和解压及中文文件夹名称乱码问题

    /**************************注释区域内为引用http://www.cnblogs.com/zhaozhan/archive/2012/05/28/2520701.html的博 ...

  9. Linux下的压缩和解压

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

随机推荐

  1. 015-awk

    1.awk的处理方式: 一次处理一行. 对每行可以进行切片处理,针对字段处理.2.awk的格式: awk BEGIN{循环之前初始化} [options] 'command' END{循环之后结尾} ...

  2. linux服务器---安装samba

    安装samba 1.检测samba是否安装,如果没有,那么可以使用yum来安装.至少需要安装3个软件:samba,samba-client.samba-common [root@localhost p ...

  3. 文件和打印机共享 win7 and xp

    Win7 摘自:https://www.xp510.com/article/4249.html 首先开启服务 方法:开始---所有程序---附件---运行---输入services.msc----确定 ...

  4. python中的property

    提示:这篇博文参考了两个博客,第一篇博文地址为:https://www.cnblogs.com/Lambda721/p/6132206.html,另一篇博文地址如下:关于python的property ...

  5. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变

    [Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...

  6. Linux 搭建FTP

    Linux 搭建FTP 步骤一:安装 vsftpd 1,运行以下命令安装 vsftpd. yum install -y vsftpd 出现下图表示安装成功. 2,打开etc/vsftpd cd /et ...

  7. 20145329 《网络对抗技术》浏览器MS11_050安全漏洞攻击

    两台虚拟机: kali ip:192.168.96.130 windows xp sp3(包含IE7)ip:192.168.96.128 1.在kali终端中开启msfconsole. 2.进入漏洞模 ...

  8. 20145337《网络对抗技术》MSF基础应用

    20145337<网络对抗技术>MSF基础应用 一.实验后回答问题 什么是exploit.payload.encode Metasploit这种模块化的设计,大大提高了代码的复用率.exp ...

  9. 20165310java_blog_week6

    2165310 <Java程序设计>第6周学习总结 教材学习内容总结 String 构造 String str=new String() String (char a[]) String ...

  10. git2

    1,开源的代码管理工具 2,分布式管理工具(更安全,可以脱网操作) 3,git的分支管理更加便捷. 4,代码的传输更新速度更快 利用git可以进入多人配合代码开发.有备份.协同 sudo apt-ge ...