C#对GZIP压缩和解压
/// <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压缩和解压的更多相关文章
- VB6进行GZIP解压&C#进行GZIP压缩和解压
VB进行GZIP解压的,DLL是系统的,如果没有 [点击下载] Option Explicit 'GZIP API '----------------------------------------- ...
- 对数据进行GZIP压缩和解压
public class GzipUtils { /** * 对字符串进行gzip压缩 * @param data * @return * @throws IOException */ public ...
- Gzip压缩和解压
/// <summary> /// 将传入字符串以GZip算法压缩后,返回Base64编码字符 /// </summary> /// <param name=" ...
- java GZIP压缩和解压
最近碰到了一个按GZIP解压指定的输入流数据,备份下 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream ...
- C#实现通过Gzip来对数据进行压缩和解压
C#实现通过Gzip来对数据进行压缩和解压 internal static byte[] Compress(byte[] data) { using (var compressedStream = n ...
- 使用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常用命令:4文件压缩和解压命令
文件压缩和解压命令 压缩命令:gzip.tar[-czf].zip.bzip2 解压缩命令:gunzip.tar[-xzf].unzip.bunzip2 1. 命令名称:gzip 命令英文原意:GNU ...
- .net文件压缩和解压及中文文件夹名称乱码问题
/**************************注释区域内为引用http://www.cnblogs.com/zhaozhan/archive/2012/05/28/2520701.html的博 ...
- Linux下的压缩和解压
1. gzip, bzip2 能否直接压缩目录呢?不可以 2. 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令.压缩:gzip 1.txt bzip2 1.txt解压:gzip -d 1 ...
随机推荐
- Spring MVC 和 Struts2 的比较
SpringMVC与Struts2的比较 1:框架核心机制:SpringMVC(DispatcherServlet)采用Servlet实现,Struts2采用Filter(StrutsPrepareA ...
- 20154312 曾林 Exp8 web基础
1.基础问题回答 1.1.什么是表单 1.2.浏览器可以解析运行什么语言 1.3.WebServer支持哪些动态语言 2.实践总结与体会 3.实践过程记录 ----3.1.Web前端:HTML基础 - ...
- 文本按列导入excel
打开excel,选择数据选项卡,自文本选项.
- Python: 没有switch-case语句
初学Python语言,竟然很久才发现Python没有switch-case语句 官方的解释说,“用if... elif... elif... else序列很容易来实现 switch / case 语句 ...
- charles 手机抓包 unknown
设置通配符即可 需要注意的点: 手机配置好电脑的服务器ip和端口号后,下载证书和安装好,然后电脑也需要安装证书.再配置可允许ssl 本地域名.
- linux服务器管理员的12个有用的命令
ifconfig: 在修改内核中已有的网络接口时,你会用到ifconfig命令.这个命令通常用于系统调校和调试,但同时也可以用于在启动过程中设置接口. netstat: 对于Linux用户来说这是一个 ...
- 【读书笔记】SpringBoot读书笔记
整体目录结构: 一.入门 二.开发第一个应用程序 三.自定义配置 四.测试 五.Groovy与Spring Boot Cli 六.在Spring Boot中使用Grails 七.深入Actuator ...
- Linux下Tomcat端口、进程以及防火墙设置
Linux下Tomcat端口.进程以及防火墙设置 1,查看tomcat进程: #ps -aux | grep tomcat(或者ps -ef | grep tomcat都行) 可以看到现在运行着两个 ...
- 20165211 2017-2018-2 《Java程序设计》第7周学习总结
20165211 2017-2018-2 <Java程序设计>第7周学习总结 教材学习内容总结 本周,我学习了书本上第十一章的内容,以下是我整理的主要知识. 第十一章 JDBC和MySQL ...
- tf.reduce_sum tensorflow维度上的操作
tensorflow中有很多在维度上的操作,本例以常用的tf.reduce_sum进行说明.官方给的api reduce_sum( input_tensor, axis=None, keep_dims ...