当前位置:编程学习 > C#/ASP.NET >>

GZipStream WebService传输

public static byte[] decZip(byte[] data)
    {
        try
        {
            MemoryStream ms = new MemoryStream(data);
            Stream zipStream = null;
            zipStream = new GZipStream(ms, CompressionMode.Decompress);
            byte[] dc_data = null;
            dc_data = EtractBytesFormStream(zipStream, data.Length);
            return dc_data;
        }
        catch
        {
            return null;
        }
    }




    public static byte[] EtractBytesFormStream(Stream zipStream, int dataBlock)
    {
        try
        {
            byte[] data = null;
            int totalBytesRead = 0;
            while (true)
            {
                Array.Resize(ref data, totalBytesRead + dataBlock + 1);//这是什么意思 为什么要两个相加,为什么最后还要加一
                int bytesRead = zipStream.Read(data, totalBytesRead, dataBlock);
                if (bytesRead == 0)
                {
                    break;
                }
                totalBytesRead += bytesRead;
            }
            Array.Resize(ref data, totalBytesRead);
            return data;
        }
        catch
        {
            return null;
        }
    }

重置数组大小干什么啊,什么意思

最好能把这段代码的整体意思说一下哈 --------------------编程问答-------------------- Array.Resize 将数组的大小更改为指定的新大小。
如果 newSize 大于旧数组的 Length,则分配一个新数组,并将所有元素从旧数组复制到新数组。如果 newSize 小于旧数组的 Length,则分配一个新数组,并将元素从旧数组复制到新数组直到新数组被填满为止;旧数组中的剩余元素将被忽略
补充:.NET技术 ,  Web Services
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,