压缩流--DeflateStream和GZipStream

//使用DeflateStream压缩和解压缩文件

namespace 压缩流1
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream fs;
            DeflateStream deflate;
            FileInfo myFile;
            string originalXML = "original.xml";
            string compressedXML = "commpressed";
            string decompressedXML = "decommpressed.xml";
            DataSet ds = new DataSet();

            myFile = new FileInfo(originalXML);
            Console.WriteLine("原文件{0}中包含{1}字节", myFile.Name, myFile.Length.ToString());
            ds.ReadXml(originalXML);
            //创建一个文件
            fs = new FileStream(compressedXML, FileMode.Create, FileAccess.Write);
            //对文件进行压缩
            deflate = new DeflateStream(fs, CompressionMode.Compress);
            //保存XML文件
            ds.WriteXml(deflate);
            //关闭流
            deflate.Close();

            myFile = new FileInfo(compressedXML);
            Console.WriteLine("文件被压缩成{0}字节,存放在{1}中", myFile.Length.ToString(), myFile.Name);
            //创建一个文件
            fs = new FileStream(compressedXML, FileMode.Open, FileAccess.Read);
            //对文件进行解压
            deflate = new DeflateStream(fs, CompressionMode.Decompress);

            ds = new DataSet();
            ds.ReadXml(deflate);
            ds.WriteXml(decompressedXML);

            myFile = new FileInfo(decompressedXML);
            Console.WriteLine("文件被解压成{0}字节,存放在{1}中", myFile.Length.ToString(), myFile.Name);
           

            Console.ReadLine();
        }
    }

 

 

//使用GZipStream压缩和解压缩文件,与上一个基本一样

using System.IO;
using System.IO.Compression;
using System.Data;

namespace 压缩流2
{
    class Program
    {
        static void Main(string[] args)
        {
            //GZipStream解压缩文件
            FileStream fs;
            GZipStream gzip;
            FileInfo myFile;
            string originalXML = "original.xml";
            string compressedXML = "originalGZip.gz";
            string decompressedXML = "UnZip.xml";
            DataSet ds = new DataSet();

            myFile = new FileInfo(originalXML);
            Console.WriteLine("原文件{0}中包含{1}字节", myFile.Name, myFile.Length.ToString());
            ds.ReadXml(originalXML);

            //压缩
            fs = new FileStream(compressedXML, FileMode.Create, FileAccess.Write);
            gzip = new GZipStream(fs, CompressionMode.Compress);
            ds.WriteXml(gzip);
            gzip.Close();

            myFile = new FileInfo(compressedXML);
            Console.WriteLine("文件被压缩成{0}字节,存放在{1}中", myFile.Length.ToString(), myFile.Name);

            fs = new FileStream(compressedXML, FileMode.Open, FileAccess.Read);
            gzip = new GZipStream(fs, CompressionMode.Decompress);

            ds = new DataSet();
            ds.ReadXml(gzip);
            ds.WriteXml(decompressedXML);

            myFile = new FileInfo(decompressedXML);
            Console.WriteLine("文件被解压成{0}字节,存放在{1}中", myFile.Length.ToString(), myFile.Name);
            Console.ReadLine();
        }
    }
}

转载于:https://www.cnblogs.com/zxktxj/archive/2012/04/09/2438997.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值