• asp.net zip 压缩传输


    在实际生产中,比如使用xml json 等传输大量数据的时候,有时候会出现等待时间过长,这里分享一个压缩传输的方法

    首先到网上去下载一个 ICSharpCode.SharpZipLib.dll 的dll (百度和google)都是可以搜索到的

      这里本人是在传输xml 格式文本的时候感觉网速稍慢,所以找到了此优化的方法

     这里把代码分享出来

    这里是压缩数据的方法

     using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.Services;
    using PNXSoft.Framework.Configuration;
    using PNXSoft.Framework.DataAccess_MySql;
    using PNXSoft.Framework.Constants;
    using System.Data;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;
    using ICSharpCode.SharpZipLib.Zip;
    
     /// <summary>
    
        /// 压缩数据集
    
        /// </summary>
    
        /// <param name="ds"></param>
    
        /// <returns></returns>
    
        public static byte[] CompressDS(DataSet ds)
        {
    
            MemoryStream ms = new MemoryStream();
    
            ZipOutputStream zos = new ZipOutputStream(ms);
    
            zos.PutNextEntry(new ZipEntry(ds.DataSetName));
    
            BinaryFormatter bf = new BinaryFormatter();
    
            //DataSetSurrogate dss = new DataSetSurrogate(ds);
    
            bf.Serialize(zos, ds);
    
            zos.CloseEntry();
    
            zos.Close();
    
            byte[] ret = ms.ToArray();
    
            ms.Close();
    
            return ret;
    
        }
    
    
    
    
    解压数据的方法
    
    
    
    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Data;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;
    using ICSharpCode.SharpZipLib.Zip;
    
    /// <summary>
    ///DSCompress 的摘要说明
    /// </summary>
    public class DSCompress
    {
        public DSCompress()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }
    
        
          
        /// <summary>
        /// 解压数据集
        /// </summary>
        /// <param name="byt"></param>
        /// <returns></returns>
        public static DataSet DecompressDS(byte[] byt)
        {
    
            MemoryStream ms = new MemoryStream(byt);
    
            BinaryFormatter bf = new BinaryFormatter();
            
            ZipInputStream zis = new ZipInputStream(ms);
    
            zis.GetNextEntry();
    
            DataSet ds = (DataSet)bf.Deserialize(zis);
    
            zis.Close();
    
            ms.Close();
    
            return ds;
    
        } 
    
    }

    代码没什么难度,希望可以帮助到需要的人

  • 相关阅读:
    Atcoder Tenka1 Programmer Contest 2019 D Three Colors
    Codeforces 1146E Hot is Cold
    ZOJ 3820 Building Fire Stations
    ZOJ 3822 Domination
    ZOJ 3949 Edge to the Root
    Codeforces 1144G Two Merged Sequences
    PTA 团体程序设计天梯赛 L3-020 至多删三个字符
    BZOJ 5102: [POI2018]Prawnicy
    BZOJ 1045: [HAOI2008] 糖果传递
    2017-2018 ACM-ICPC, Asia Tsukuba Regional Contest
  • 原文地址:https://www.cnblogs.com/yiliuyang/p/4253642.html
Copyright © 2020-2023  润新知