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