用.NET 2.0压缩/解压功能处理大型数据---转自《华夏名网》

如果你的应用程式从未使用过压缩,那么你非常幸运。而对于另一部分使用压缩的研发人员来说,好消息是,.NET 2.0如今提供了两个类来处理压缩和解压问题。本文正是想讨论何时及怎么使用这些有用的工具。

  引言

  .NET框架2.0中的一个新名称空间是System.IO.Compression。这个新名称空间提供了两个数据压缩类:DeflateStream和GZipStream。这两个压缩类都支持无损压缩和解压,其设计目的是为了处理流式数据的压缩和解压问题。

  压缩是减少数据大小的有效办法。例如,如果你有巨大量的数据存储在你的SQL数据库中,那么如果你在把这些数据保存到一个表之前压缩一下,你就能节省大量的磁盘空间。而且,既然目前你把更小块的数据保存到你的数据库中,花费在磁盘I/O方面的操作将会大大减少。压缩的缺点是,他需求你的机器进行另外的处理(因此需要另外的处理时间),并且,在你决定把压缩应用于你的程式之前,你需要计算这一部分时间。

  压缩在你需要在网上传送数据的情况中是极其有用的,特别是对于非常慢且代价昂贵的网络,例如GPRS连接。在这种情况中,使用压缩能够极大地缩小数据尺寸并且减少整个通讯耗费。Web服务是另一个领域-此时,使用压缩能提供巨大的好处,因为XML数据能被高度压缩。

  不过一旦你认为程式的性能代价值得使用压缩,那么你将需要深入地理解.NET 2.0的两个新的压缩类,而这正是我想在本文中所阐述的。

导入下列名称空间:

Imports System.IO
Imports System.IO.Compression

  在你开始使用压缩类前,理解其工作原理是非常重要的。这些压缩类从一个字节数组中读取数据,压缩他并且把结果存储到一个流对象中。对于解压来说,解压存储到一个流对象中的数据,然后把他存储到另一个流对象中。

  首先,定义Compress()函数,他有两个参数:algo和data。第一个参数指定使用哪种算法(GZip或Deflate);第二个参数是个包含要压缩的数据的字节数组。一个内存流对象将被用来存储压缩数据。一旦压缩完成,你需要计算压缩比,这是用压缩的数据的大小除以解压数据的大小计算的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值