日期:2014-05-18 浏览次数:20929 次
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#网络编程吧 ,我才开始学,很喜欢,不过还不会