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();
            }
        }
    }

  • 相关阅读:
    HDU 1495 非常可乐
    ja
    Codeforces Good Bye 2016 E. New Year and Old Subsequence
    The 2019 Asia Nanchang First Round Online Programming Contest
    Educational Codeforces Round 72 (Rated for Div. 2)
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises)
    AtCoder Regular Contest 102
    AtCoder Regular Contest 103
    POJ1741 Tree(点分治)
    洛谷P2634 [国家集训队]聪聪可可(点分治)
  • 原文地址:https://www.cnblogs.com/zxktxj/p/2438997.html
Copyright © 2011-2022 走看看