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 ...
随机推荐
- PowerDesigner一些常用功能介绍
主键.自增长等等 修改之前: drop table if exists sys_user; /*==================================================== ...
- js数组高阶方法reduce经典用法代码分享
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...
- thinkphp 表名 大小写 窍门
我们有一个表auth_group_access,那么如何使用呢?在使用M方法时,对于带下划线的表名,可以采用如下方法. M('AuthGroupAccess');对应sql语句SQL: SHOW CO ...
- T-SQL 数据库的创建
create database databaseNameon primary( Name =dbName1, FileName='C:\mydatabase1\dbName1.mdf', Siz ...
- ES6 对象转Map
使用Object.entries const obj = { foo: 'bar', baz: 42 }; const map = new Map(Object.entries(obj)); map ...
- 【Python】学习笔记八:面向对象
举例 面向对象的合理解释就是:我是人这个类,对象化以后我就是一个个体OLIVER 对象化就是在人这个大类中,将某个人指名道姓,具体到某个人 下面是一个具体的实例一: #!/usr/bin/python ...
- ICP备案的一些tips~
1)一个单位是一个备案主体,只能有一个主体备案号: 2)一个企业下面可以有多个网站,依次在备案号后加-1 -2,以此类推,也叫网站备案号,每个网站只能有一个网站备案号.(所谓网站,不是指域名,也不是i ...
- c#.net调用pdf2swf.exe将pdf文件转换为swf,vs中运行正常,布署IIS服务器部署转换后文字部分为空白
这个是权限问题, 需要在应用程序池中高级设置,将标识改为LocalSystem
- @@identity、scope_identity()、IDENT_CURRENT('tablename')函数的区别
@@IDENTITY 和SCOPE_IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值.但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值:@@IDENTITY 不受限于 ...
- Atitit.有分区情况下的表查询策略流程
Atitit.有分区情况下的表查询策略流程 1. 分区表查询策略流程1 2. 常见数据库oracle mysql的分区查询语句1 2.1. 跨分区查询(oracle)1 2.2. 单分区查询 (ora ...