zoukankan      html  css  js  c++  java
  • 压缩流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();
            }
        }
    }

  • 相关阅读:
    Elasticsearch学习之深入搜索三 --- best fields策略
    Elasticsearch学习之深入搜索二 --- 搜索底层原理剖析
    Elasticsearch学习之深入搜索一 --- 提高查询的精准度
    Elasticsearch学习之深入聚合分析五---案例实战
    Enigma Virtual Box:生成可执行文件。
    erlang的erl文件的编码方式
    Java相关术语 或者 组件命。
    pyqt5加载网路图片,不本地下载。
    Python3 的json 和 PHP的json
    python3 post方式上传文件。
  • 原文地址:https://www.cnblogs.com/zxktxj/p/2438997.html
Copyright © 2011-2022 走看看