日期:2014-05-18 浏览次数:20799 次
List<byte[]> buffers = new List<byte[]>(); while(true) { byte[] tempBuffer = new byte[SmallBufferSize]; //我假设DataSource是数据源,它的Fillbuffer方法填充指定的byte[],并且最多填充SmalLBufferSize大小。 //返回实际填充的长度(可能不足SmallBufferSize) int k = DataSource.FillBuffer(tempBuffer,SmallBufferSize); if(k<SmallBufferSize) { byte[] tempBufferActual = new byte[k]; tempBuffer.CopyTo(tempBufferActual,0,k); tempBuffer = tempBufferActual; } //添加进总的Buffer当中 buffers.Add(tempBuffer); //如果返回的数据长度不是SmallbufferSize表示已读到文件尾,退出 if(k<SmallBufferSize)break; } //求出总缓冲区长度 int bufferLength = 0; foreach(byte[] ba in buffers) { bufferLength +=ba.Length; } byte[] TotalBuffer = new byte[bufferLength]; int offset = 0; foreach(byte[] ba in buffers) { ba.CopyTo(TotalBuffer,offet,ba.Length); offset+=ba.Length; } //TotalBuffer就是你要的总的Buffer了
------解决方案--------------------
你最好评估一下,一张图片多大!!最好不要把一张在拆分了
------解决方案--------------------
y应该是C#网络编程吧 ,我才开始学,很喜欢,不过还不会