//引用
            using System.IO.Compression;
            //解压缩类
            GZipStream
            //解压缩实例
            ......
            HttpWebResponse httpRequest = (HttpWebResponse)httpLogin.GetResponse();
            Stream HttpResStream= httpRequest.GetResponseStream();
            GZipStream gzip = new GZipStream(HttpResStream, CompressionMode.Decompress) ;
            //对解压缩后的字符串信息解析
           while ((len = gzip.Read(bytes, , bytes.Length)) > )
            {
               line =  System.Text.Encoding.Default.GetString(bytes);
            }  http://msdn.microsoft.com/zh-cn/library/system.io.compression.gzipstream(v=vs.80).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1  using System;
using System.IO;
using System.IO.Compression; public class GZipTest
{
    public static int ReadAllBytesFromStream(Stream stream, byte[] buffer) 
    {
    // Use this method is used to read all bytes from a stream.
    int offset = ;
    int totalCount = ;
        while (true) 
        {
        int bytesRead = stream.Read(buffer, offset, ); 
            if ( bytesRead == ) 
            {
            break; 
            }
    offset += bytesRead;
    totalCount += bytesRead; 
        }
    return totalCount;
    }      public static bool CompareData(byte[] buf1, int len1, byte[] buf2, int len2) 
    {
        // Use this method to compare data from two different buffers.
        if (len1 != len2) 
        { 
        Console.WriteLine("Number of bytes in two buffer are different {0}:{1}", len1, len2);
        return false;
        }         for ( int i= ; i< len1; i++) 
        {
            if ( buf1[i] != buf2[i]) 
            {
            Console.WriteLine("byte {0} is different {1}|{2}", i, buf1[i], buf2[i]);
            return false;
            }
        }
    Console.WriteLine("All bytes compare.");
    return true; 
    }     public static void GZipCompressDecompress(string filename)
    {
    Console.WriteLine("Test compression and decompression on file {0}", filename);
    FileStream infile;
        try
        {
        // Open the file as a FileStream object.
        infile = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
        byte[] buffer = new byte[infile.Length];
        // Read the file to ensure it is readable.
        int count = infile.Read(buffer, , buffer.Length);
            if ( count != buffer.Length) 
            {
            infile.Close();
            Console.WriteLine("Test Failed: Unable to read data from file"); 
            return;
            }
        infile.Close();
        MemoryStream ms = new MemoryStream();
        // Use the newly created memory stream for the compressed data.
        GZipStream compressedzipStream = new GZipStream(ms , CompressionMode.Compress, true);
        Console.WriteLine("Compression");
        compressedzipStream.Write(buffer, , buffer.Length);
        // Close the stream.
        compressedzipStream.Close();
        Console.WriteLine("Original size: {0}, Compressed size: {1}", buffer.Length, ms.Length);         // Reset the memory stream position to begin decompression.
        ms.Position = ;
        GZipStream zipStream = new GZipStream(ms, CompressionMode.Decompress);
        Console.WriteLine("Decompression");
        byte[] decompressedBuffer = new byte[buffer.Length + ];
        // Use the ReadAllBytesFromStream to read the stream.
        int totalCount = GZipTest.ReadAllBytesFromStream(zipStream, decompressedBuffer);
        Console.WriteLine("Decompressed {0} bytes", totalCount);         if( !GZipTest.CompareData(buffer, buffer.Length, decompressedBuffer, totalCount) ) 
        {
        Console.WriteLine("Error. The two buffers did not compare.");
        }
    zipStream.Close(); 
        } // end try
        catch (InvalidDataException)
        {
            Console.WriteLine("Error: The file being read contains invalid data.");
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine("Error:The file specified was not found.");
        }
        catch (ArgumentException)
        {
            Console.WriteLine("Error: path is a zero-length string, contains only white space, or contains one or more invalid characters");
        }
        catch (PathTooLongException)
        {
            Console.WriteLine("Error: The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.");
        }
        catch (DirectoryNotFoundException)
        {
            Console.WriteLine("Error: The specified path is invalid, such as being on an unmapped drive.");
        }
        catch (IOException)
        {
            Console.WriteLine("Error: An I/O error occurred while opening the file.");
        }
        catch (UnauthorizedAccessException)
        {
            Console.WriteLine("Error: path specified a file that is read-only, the path is a directory, or caller does not have the required permissions.");
        }
        catch (IndexOutOfRangeException)
        {
            Console.WriteLine("Error: You must provide parameters for MyGZIP.");
        }
    }
    public static void Main(string[] args)
    {
        string usageText = "Usage: MYGZIP <inputfilename>";
        //If no file name is specified, write usage text.
        if (args.Length == )
        {
            Console.WriteLine(usageText);
        }
        else
        {
            if (File.Exists(args[]))
                GZipCompressDecompress(args[]);
        }
    }
}     

c# gzip解压缩的更多相关文章

  1. Windows API方式直接调用C#的DLL,支持多音字转拼音、Gzip解压缩、公式计算(VBA、C++、VB、Delphi甚至java都可以)

    原始链接 https://www.cnblogs.com/Charltsing/p/DllExport.html 这两年,我在VBA应用方面一直有几大痛点:1.多音字转拼音:2.64位下的GZIP解压 ...

  2. VB6之借助zlib实现gzip解压缩

    这是个简版的,可以拿来做下网页gzip的解压缩,整好我的webserver还不支持这个,有时间了就加上. zlib.dll下载请点击我! 模块zlib.bas的代码如下: 'code by lichm ...

  3. http gzip 解压缩

    var sContentEncoding = httpRespone.Headers["Content-Encoding"]; if(sContentEncoding == &qu ...

  4. c语言使用zlib实现文本字符的gzip压缩与gzip解压缩

    网络上找到的好多方法在解压缩字符串的时候会丢失字符,这里是解决方法: http://stackoverflow.com/questions/21186535/compressing-decompres ...

  5. AXIS2调用web service,返回结果用GZIP解压缩

    import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...

  6. C#使用Gzip解压缩完整读取网页内容

    using System; using System.Threading; using System.Text; using System.Text.RegularExpressions; using ...

  7. 对数据进行GZIP压缩或解压缩

    /** * 对data进行GZIP解压缩 * @param data * @return * @throws Exception */ public static String unCompress( ...

  8. java GZIP压缩与解压缩

    1.GZIP压缩 public static byte[] compress(String str, String encoding) { if (str == null || str.length( ...

  9. AIX 文件 打包 与 压缩 tar gzip compress 的使用

    今天在Aix用tar -cvf 备份,打成tar包,占有硬盘空间过大,没有压缩比, 尝试使用tar -zcvf  linux系统下可以用-z 命令 (z 用gzip来压缩/解压缩文件,加上该选项后可以 ...

随机推荐

  1. 微信小程序的一些限制

    小程序的一些限制: 不支持HTML.没有 Dom.网页用的 JS.CSS 基本要全部重写,WXML 的语法和 HTML 差异还挺大,基本是一个个照着手册的属性去改.CSS 选择器不支持级联. 小程序源 ...

  2. SharePoint 页面Pages和SitePages目录创建不成功解决

    最近项目中要用到Pages及SitePages目录中的一个 可是目录时,不是发现没有Pages就是没SitePages: 分析后才得知Pages目录需要开户SharePoint Server Publ ...

  3. 面向服务的体系结构(service-oriented architecture,SOA)

    SOA的概念是Gartner 在1996年提出来的,并于2002年12月进一步提出SOA是“现代应用开发领域最重要的课题”.   一.SOA的定义 SOA分为广义的SOA和狭义的SOA,广义的SOA是 ...

  4. 20160408javaweb之JDBC ---PreparedStatement

    PreparedStatement 1.Sql注入:由于jdbc程序在执行的过程中sql语句在拼装时使用了由页面传入参数,如果用户恶意传入一些sql中的特殊关键字,会导致sql语句意义发生变化,这种攻 ...

  5. Android中使用ViewPager实现广告条

    我们在使用电商或视频的手机客户端时,通常会看到广告条的效果.在网上搜索时才知道使用的是ViewPager,于是自己也做了一个Demo. 以下是效果图: 图中包括背景图片.文字描述以及白点. 其中Vie ...

  6. Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)

    Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...

  7. bootstrap 正则表达式

    <asp:TextBox runat="server"  title="邮箱正确格式:xxx@xxx.xxx" class="form-cont ...

  8. 使用Eclipse提供的Axis1.x生成WSDL文件以及Server和Client代码

    使用Eclipse自带的Axis 1.x来创建一个web service应用的服务端和客户端 Axis 是SOAP WebService协议实现,SOAP实质上是一个基于HTTP POST的请求,以X ...

  9. 贪心算法:旅行商问题(TSP)

    TSP问题(Traveling Salesman Problem,旅行商问题),由威廉哈密顿爵士和英国数学家克克曼T.P.Kirkman于19世纪初提出.问题描述如下: 有若干个城市,任何两个城市之间 ...

  10. Inline functions

    Problems: (Page 372) There are two problems with the use of proprocessor macros in C++. The first is ...