• GZipStream


    命名空间:

    System.IO.Compression

    说明:

    此类表示 GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法。这种格式包括一个检测数据损坏的循环冗余校验值。GZip 数据格式使用的算法与 DeflateStream 类的算法相同,但它可以扩展以使用其他压缩格式。这种格式可以通过不涉及专利使用权的方式轻松实现。gzip 的格式可以从 RFC 1952“GZIP file format specification 4.3(GZIP 文件格式规范 4.3)GZIP file format specification 4.3(GZIP 文件格式规范 4.3)”中获得。此类不能用于压缩大于 4 GB 的文件。构造函数:

    public GZipStream(Stream stream,CompressionMode mode)
    //使用指定的流和 CompressionMode 值初始化 GZipStream 类的新实例。

    public GZipStream(Stream stream,CompressionMode mode,bool leaveOpen)
    //使用指定的流和CompressionMode值以及一个指定是否将流保留为打开状态的值来初始化GZipStream类的新实例。

    stream 要压缩或解压缩的流。
    mode CompressionMode值之一,表示要采取的操作;
    leaveOpen true将流保留为打开状态,否则为false。

    示例:

    using System;
    using System.IO;
    using System.IO.Compression;
    
    /// <summary>
    /// Summary description for Compress
    /// </summary>
    public class Compress
    {
        public Compress()
        {
            //
            // TODO: Add constructor logic here
            //
        }
    
        /// <summary>
        /// 压缩,返回字符串
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static string CompressObject(string param)
        {
            string compressString = "";
            MemoryStream mstream = new MemoryStream();
            GZipStream cstream = new GZipStream(mstream, CompressionMode.Compress, true);
            StreamWriter bwriter = new StreamWriter(cstream);
            bwriter.Write(param);
            //BinaryWriter bwriter = new BinaryWriter(cstream);
            //bwriter.Write(Encoding.UTF8.GetBytes(param));
            bwriter.Close();
            cstream.Close();
            compressString = Convert.ToBase64String(mstream.ToArray());
            mstream.Close();
            return compressString;
        }
    
        /// <summary>
        /// 解压缩字符串
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static string DepressObject(string param)
        {
            string commonString = "";
            byte[]  data = Convert.FromBase64String(param) ;
            MemoryStream mstream = new MemoryStream(data);
            GZipStream cstream = new GZipStream(mstream, CompressionMode.Decompress);
            StreamReader reader = new StreamReader(cstream);
            commonString = reader.ReadToEnd();
            mstream.Close();
            cstream.Close();
            reader.Close();
            return commonString;
        }
    }

    示例2:

    using System.IO;
    using System.IO.Compression;
    
    /// <summary>
    /// Summary description for Cop
    /// </summary>
    public class Cop
    {
        public Cop()
        {
            //
            // TODO: Add constructor logic here
            //
        }
        /// <summary>
        /// 压缩文件
        /// </summary>
        /// <param name="fileName">文件名(全路径)</param>
        /// <param name="data">需要压缩的字符串</param>
        public void CompressFile(string fileName, string data)
        {        
            FileStream fstream = new FileStream(fileName, FileMode.Create, FileAccess.Write);
            GZipStream gstream = new GZipStream(fstream, CompressionMode.Compress);
            StreamWriter swriter = new StreamWriter(gstream);
            swriter.Write(data);
            swriter.Close();
            gstream.Close();
            fstream.Close();
        }
        /// <summary>
        /// 解压缩
        /// </summary>
        /// <param name="fileName">文件名(全路径)</param>
        /// <returns></returns>
        public string DecompressFile(string fileName)
        {
            string cstring="";
            FileStream fstream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            GZipStream gstream = new GZipStream(fstream, CompressionMode.Decompress);
            StreamReader reader = new StreamReader(gstream);
            cstring=reader.ReadToEnd();
            reader.Close();
            gstream.Close();
            fstream.Close();
            return cstring;
        }
    }
  • 相关阅读:
    【转】软链接和硬链接到底有啥作用和区别
    useradd命令详解
    【转】Linux下MySQL数据库安装及配置方法
    【转】MySQL的安装与配置——详细教程-window系统下
    mysql服务器常用命令
    【转】DDL/DML/DCL区别概述
    tmux终端工具的简单使用
    linux go环境安装和基本项目结构
    ClickHouse高可用集群的配置
    centos7下使用rpm包安装clickhouse
  • 原文地址:https://www.cnblogs.com/AngelLee2009/p/3338733.html
Copyright © 2020-2023  润新知