zoukankan      html  css  js  c++  java
  • Gzipstream 解压问题

    Gzipstream  解压问题 

    static void Main(string[] args)
            {
    
                string path = @"C:\fg.txt"; //压缩前
                string pathdes=@"C:\fg1.txt"; //压缩后
                string depath = @"C:\fg2.txt"; //还原为
    
                GzipFile(path, pathdes);           
    
    
                DeGzipFile(pathdes,depath );
                Console.Read();
            }
    
    
    
            /// <summary>
            /// 压缩文件
            /// </summary>
            /// <param name="soursPath"></param>
            /// <param name="desPath"></param>
            static void GzipFile(string soursPath, string desPath)
            {
                //File.ReadAllText(Path,Encoding.Default)
                byte[] compressed = Compress(File.ReadAllBytes(soursPath));
                File.WriteAllBytes(desPath, compressed);
    
            }
    
            /// <summary>
            /// 解压文件
            /// </summary>
            /// <param name="soursPath"></param>
            /// <param name="desPath"></param>
            static void DeGzipFile(string soursPath, string desPath)
            {
                byte[] compressed = Decompress(File.ReadAllBytes(soursPath));
                File.WriteAllBytes(desPath, compressed);
    
            }
    
            /// <summary>
            /// 压缩流
            /// </summary>
            /// <param name="data">byte[] 输入流</param>
            /// <returns>输出流byte[]</returns>
            public static byte[] Compress(byte[] data)
            {
                byte[] result;
                Console.WriteLine("初始大小:\t{0} bytes", data.Length);
                using (MemoryStream baseStream = new MemoryStream())
                {
                    using (GZipStream stream = new GZipStream(baseStream, CompressionMode.Compress, true))
                    {
                        stream.Write(data, 0, data.Length);
                    }
                    result = baseStream.ToArray();  // only safe to read after deflate closed
                }
                Console.WriteLine("压缩后大小:\t{0} bytes", result.Length);
                return result;
            }
    
    
    
            /// <summary>
            /// 将流解压缩
            /// </summary>
            /// <param name="data">byte[] 输入流</param>
            /// <returns>输出流byte[]</returns>
            public static byte[] Decompress(byte[] data)
            {            
                byte[] result;
                Console.WriteLine("解压前大小:\t{0} bytes", data.Length);
                using (MemoryStream mStream = new MemoryStream(data))
                {
                    using (GZipStream gStream = new GZipStream(mStream, CompressionMode.Decompress))
                    {
                        StreamReader streamR = new StreamReader(gStream, Encoding.Default);//此处Encoding 选择默认
                        string outs = streamR.ReadToEnd();//也可以直接返回字符串
                        result = Encoding.Default.GetBytes(outs);
                    }
                }
                Console.WriteLine("解压后大小:\t{0} bytes", result.Length);
                return result;
            }
    

      

  • 相关阅读:
    OCM_Session7_8_分区,并使用udev来配置裸设备
    OCM_Session7_7_VBOX配置共享存储
    OCM_Session7_6_配置oracle用户ssh对等性
    OCM_Session7_5_修改/etc/security/limits.conf和 /etc/pam.d/login和/etc/profile
    OCM_Session7_4_修改内核配置文件/etc/sysctl.conf
    OCM_Session7_3_修改 oracle 用户的初始化参数文件,建路径
    OCM_Session7_2_创建组,用户,设置用户密码
    OCM_Session7_1_配置/etc/hosts
    OCM_Session7_0_准备工作,确定hostname和ip地址
    OCM_Session7_0_CRS-0223
  • 原文地址:https://www.cnblogs.com/senion/p/2376969.html
Copyright © 2011-2022 走看看