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

  • 相关阅读:
    修改spring源码重写classloader实现项目加密
    Java验证工具类
    jsp相关基础知识
    HTTP协议详细分析
    Java获取Linux和Window系统CPU、内存和磁盘总使用率的情况
    关于Genymotion下载比较慢的解决办法
    Android Studio:Failed to resolve ***
    ActionBar设置自定义setCustomView()留有空白的问题
    Service是什么?Service又不是什么?
    Socket--Android王国的外交发言人
  • 原文地址:https://www.cnblogs.com/zxktxj/p/2438997.html
Copyright © 2011-2022 走看看