使用.Net自带的GZipStream进行流压缩与解压
using System.IO;
using System.IO.Compression;
using System.Text; namespace CS.Utility
{
/// <summary>
/// 压缩与解压缩处理
/// </summary>
public static class Compressor
{ /// <summary>
/// 压缩字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static byte[] Compress(string str)
{
var data = Encoding.UTF8.GetBytes(str);
return Compress(data);
} /// <summary>
/// 压缩二进制流
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] Compress(byte[] data)
{
using (var memoryStream = new MemoryStream())
{
using (var compressionStream = new GZipStream(memoryStream, CompressionMode.Compress))
{
compressionStream.Write(data, , data.Length);
compressionStream.Flush();
}
//必须先关了compressionStream后才能取得正确的压缩流
return memoryStream.ToArray();
}
} /// <summary>
/// 解压二进制流
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] Depress(byte[] data)
{
using (var memoryStream = new MemoryStream(data))
using (var outStream = new MemoryStream())
{
using (var compressionStream = new GZipStream(memoryStream, CompressionMode.Decompress))
{
compressionStream.CopyTo(outStream);
compressionStream.Flush();
}
return outStream.ToArray();
}
}
}
}
参考资料:http://msdn.microsoft.com/zh-cn/library/ms404280(v=vs.110).aspx
使用.Net自带的GZipStream进行流压缩与解压的更多相关文章
- C# -- 文件的压缩与解压(GZipStream)
		
文件的压缩与解压 需引入 System.IO.Compression; 1.C#代码(入门案例) Console.WriteLine("压缩文件..............."); ...
 - XML序列化 判断是否是手机  字符操作普通帮助类  验证数据帮助类  IO帮助类  c# Lambda操作类封装  C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法  C# -- 文件的压缩与解压(GZipStream)
		
XML序列化 #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...
 - C# 压缩、解压文件夹或文件(带密码)
		
今天梳理一下项目中用到的压缩.解压文件夹或文件的方法,发现因为需求不同,已经用了好几个不同组件.今天就好好整理记录下,别下次遇到需求又重头开始了. DotNetZip DotNetZip是一个开源的免 ...
 - GZipStream 压缩与解压数据
		
简介:此类表示 GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法.这种格式包括一个检测数据损坏的循环冗余校验值.GZip 数据格式使用的算法与 DeflateStream 类的算法相同,但 ...
 - Java IO流文件复制/解压的几种方法总结
		
引言 在JavaWeb项目开发过程,涉及到IO文件的读写操作以及文件的复制copy操作是作为一个程序员不可获取的知识,那接下来就总结一些copy文件的一些方法,与大家通过学习,如果还有其他更好的方法, ...
 - JAVA自带API的压缩与解压
		
Java API中的 java.util.zip.*;包下包含了Java对于压缩文件的所有相关操作.我们可以使用该包中的方法,结合IO中的相关知识,进行文件的压缩和解压缩相关操作. ZipFile j ...
 - ZIP文件流压缩和解压
		
前面写了一篇文章 "ZIP文件压缩和解压", 介绍了" SharpZipLib.Zip " 的使用, 最近的项目中,在使用的过程中, 遇到一些问题. 比如, 现 ...
 - Shoot the Bullet(有源汇带上下界最大流)
		
有源汇带上下界最大流 在原图基础上连一条汇点到源点流量为inf的边,将有源汇网络流转化为无源汇网络流用相同方法判断是否满流,如果满流再跑一边源点到汇点的最大流就是答案 例题:Shoot the Bul ...
 - 可解压带中文名称文件的zip包
		
package com.text.ziptest; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; i ...
 
随机推荐
- CSDN数据库被爆 统计CSDN用户都喜欢哪些密码
			
今天有黑客在网上公开了知名网站CSDN的用户数据库,这是一次严重的暴库泄密事件,涉及到的账户总量高达600万个.有人写了一个小程序,统计了这次公布的 6428632 个 CSDN 哪些密码出镜率较高? ...
 - CalloutManager
			
在SharePoint中很多弹出的提示样式挺好看,不仅想整一个耍耍.如下图: 老办法,看一下html中的class名字得知为:Callout 谷歌之---官方文档:http://msdn.micros ...
 - What is research (1)
			
This abstract tells me a lot of stories about itself. Here I want to discuss two stories about it. I ...
 - -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法
			
-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法: 错误:NSMutableD ...
 - linux 修改home 目录
			
第一种方法:vi /etc/passwd 找到要修改的用户那几行,修改掉即可.此法很暴力,建议慎用. /etc/passwd文件格式 登录名:加密口令:数字用户ID:数字组ID:注释字段:起 ...
 - .Net控件经验集合
			
一.DropDownList默认选中 开始的笨方法: foreach (ListItem item in DropDownList1.Items) { ...
 - Scrum三大角色特点
			
灵感来自于一段冷笑话: 一天,一头猪和一只鸡在路上散步,鸡看了一下猪说,“嗨,我们合伙开一家餐馆怎么样?”,猪回头看了一下鸡说,“好主意,那你准备给餐馆起什么名字呢?”,鸡想了想说“餐馆名字叫火腿和鸡 ...
 - Android程序意外Crash后自动重启
			
1.自定义UncaughtExceptionHandler public class UnCeHandler implements UncaughtExceptionHandler { private ...
 - NSJSONSerialization
			
/* 总结: json格式的读写: 解析: data = NSData dataWithContentsOfUrl:XXX id obj = [ NSJsonSerializat ...
 - 【代码笔记】iOS-读取一段文字
			
一,效果图. 二,工程图. 三,代码. RootViewController.m #import "RootViewController.h" @interface RootVie ...