GZipStream
命名空间:
System.IO.Compression
说明:
此类表示 GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法。这种格式包括一个检测数据损坏的循环冗余校验值。GZip 数据格式使用的算法与 DeflateStream 类的算法相同,但它可以扩展以使用其他压缩格式。这种格式可以通过不涉及专利使用权的方式轻松实现。gzip 的格式可以从 RFC 1952“GZIP file format specification 4.3(GZIP 文件格式规范 4.3)GZIP file format specification 4.3(GZIP 文件格式规范 4.3)”中获得。此类不能用于压缩大于 4 GB 的文件。构造函数:
public GZipStream(Stream stream,CompressionMode mode)
//使用指定的流和 CompressionMode 值初始化 GZipStream 类的新实例。
public GZipStream(Stream stream,CompressionMode mode,bool leaveOpen)
//使用指定的流和CompressionMode值以及一个指定是否将流保留为打开状态的值来初始化GZipStream类的新实例。
stream 要压缩或解压缩的流。
mode CompressionMode值之一,表示要采取的操作;
leaveOpen true将流保留为打开状态,否则为false。
示例:
using System;
using System.IO;
using System.IO.Compression; /// <summary>
/// Summary description for Compress
/// </summary>
public class Compress
{
public Compress()
{
//
// TODO: Add constructor logic here
//
} /// <summary>
/// 压缩,返回字符串
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public static string CompressObject(string param)
{
string compressString = "";
MemoryStream mstream = new MemoryStream();
GZipStream cstream = new GZipStream(mstream, CompressionMode.Compress, true);
StreamWriter bwriter = new StreamWriter(cstream);
bwriter.Write(param);
//BinaryWriter bwriter = new BinaryWriter(cstream);
//bwriter.Write(Encoding.UTF8.GetBytes(param));
bwriter.Close();
cstream.Close();
compressString = Convert.ToBase64String(mstream.ToArray());
mstream.Close();
return compressString;
} /// <summary>
/// 解压缩字符串
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public static string DepressObject(string param)
{
string commonString = "";
byte[] data = Convert.FromBase64String(param) ;
MemoryStream mstream = new MemoryStream(data);
GZipStream cstream = new GZipStream(mstream, CompressionMode.Decompress);
StreamReader reader = new StreamReader(cstream);
commonString = reader.ReadToEnd();
mstream.Close();
cstream.Close();
reader.Close();
return commonString;
}
}
示例2:
using System.IO;
using System.IO.Compression; /// <summary>
/// Summary description for Cop
/// </summary>
public class Cop
{
public Cop()
{
//
// TODO: Add constructor logic here
//
}
/// <summary>
/// 压缩文件
/// </summary>
/// <param name="fileName">文件名(全路径)</param>
/// <param name="data">需要压缩的字符串</param>
public void CompressFile(string fileName, string data)
{
FileStream fstream = new FileStream(fileName, FileMode.Create, FileAccess.Write);
GZipStream gstream = new GZipStream(fstream, CompressionMode.Compress);
StreamWriter swriter = new StreamWriter(gstream);
swriter.Write(data);
swriter.Close();
gstream.Close();
fstream.Close();
}
/// <summary>
/// 解压缩
/// </summary>
/// <param name="fileName">文件名(全路径)</param>
/// <returns></returns>
public string DecompressFile(string fileName)
{
string cstring="";
FileStream fstream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
GZipStream gstream = new GZipStream(fstream, CompressionMode.Decompress);
StreamReader reader = new StreamReader(gstream);
cstring=reader.ReadToEnd();
reader.Close();
gstream.Close();
fstream.Close();
return cstring;
}
}
GZipStream的更多相关文章
- GZipStream 压缩和解压
GZipSteam: GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法 类 GZipStream有两种模式:CompressionMode.Compress和CompressionMode ...
- 使用.Net自带的GZipStream进行流压缩与解压
using System.IO; using System.IO.Compression; using System.Text; namespace CS.Utility { /// <summ ...
- .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化
1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...
- .net 利用 GZipStream 压缩和解压缩
1.GZipStream 类 此类在 .NET Framework 2.0 版中是新增的. 提供用于压缩和解压缩流的方法和属性 2.压缩byte[] /// <summary> /// 压 ...
- 压缩、解压缩流GZipStream
如果要在压缩过程中检查错误或要与其他操作系统所用程序共享压缩数据,则要是用GZipStream类.GZipStream类包含是用GZip数据格式进行压缩和解压缩文件的方法,该类不能用于解压缩大于4GB ...
- C# -- 文件的压缩与解压(GZipStream)
文件的压缩与解压 需引入 System.IO.Compression; 1.C#代码(入门案例) Console.WriteLine("压缩文件..............."); ...
- GZipStream 压缩与解压数据
简介:此类表示 GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法.这种格式包括一个检测数据损坏的循环冗余校验值.GZip 数据格式使用的算法与 DeflateStream 类的算法相同,但 ...
- 使用GZipStream压缩和解压文件
最近做了一个用.NET里的GZipStream压缩解压缩gzip文件的小程序. GZipStream在System.IO.Compression底下,使用起来也很简单.虽然GZipStream是Str ...
- [转][C#]压缩解压缩类 GZipStream
本文来自:https://msdn.microsoft.com/zh-cn/library/system.io.compression.gzipstream(v=vs.100).aspx using ...
- XML序列化 判断是否是手机 字符操作普通帮助类 验证数据帮助类 IO帮助类 c# Lambda操作类封装 C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法 C# -- 文件的压缩与解压(GZipStream)
XML序列化 #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...
随机推荐
- 内网渗透技巧:判断机器真实外网IP的5种方法总结
在内网渗透中有时需要在某台WEB服务器中留下后门,该机器可以通过内网IP建立IPC连接,但还需要获知外网IP或域名才能访问Wbshell,在无网关权限的情况下,我总结了有如下方法: 1.通过nsloo ...
- Git库搭建好之后,当要提交一个新的文件,需要做的是3个步骤
Git库搭建好之后,当要提交一个新的文件,需要做的是3个步骤 1.git add new.txt 2.git commit -m "add a new file" 3.git pu ...
- 基于SpringBoot的Environment源码理解实现分散配置
前提 org.springframework.core.env.Environment是当前应用运行环境的公开接口,主要包括应用程序运行环境的两个关键方面:配置文件(profiles)和属性.Envi ...
- SVN 常见命令
一.什么是SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. 二.SVN的下载安装 下载地址:http ...
- RelativeLayout与LinearLayout的比较
转自:http://blog.csdn.net/onepiece2/article/details/26396287 RelativeLayout 是相对布局在页面上相对于页面坐标进行布局设置.比如可 ...
- hibernate 一对多双向的CURD
转自尚学堂教学视频 package com.bjsxt.hibernate; import java.util.HashSet; import java.util.Set; import java ...
- 自己动手,制作真正的.net Framework 3.5 SP1离线安装包(转)
.NET Framework 3.5 SP1发布了,兴冲冲…下载,当然是完全离线安装包.net Framework 3.5 Service pack 1(Full Package) 231MB,网络慢 ...
- 基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之1.ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- 1-wire单总线DS18B20
要想实现单总线通信,每一个挂在总线上的从机必须拥有开路或3态输出.单总线DS18B20的DQ引脚用内部电路实现了开漏输出,其等效电路如下图: 当单片机IO引脚配置为 mcu IO引脚 电流流向 DS1 ...
- sql中的SET NOCOUNT ON/OFF
当 SET NOCOUNT 为 ON 时,不返回计数(表示受Transact-SQL 语句影响的行数). 当 SET NOCOUNT 为 OFF 时,返回计数(默认为OFF). 即使当 SET NOC ...