谁能在这里看到我逻辑上的任何明显漏洞。基本上,我需要先将字节数组分成10,000个块,然后再发送出去:

byte [] bytes = GetLargePieceOfData();
Stream stream = CreateAStream();

if (bytes.Length > 10000)
{
    int pos = 0;
    int chunkSize = 10000;

    while (pos < bytes.Length)
    {
        if (pos + chunkSize > bytes.Length)
            chunkSize = bytes.Length - pos;

        stream.Write(bytes, pos, chunkSize);
        pos += chunkSize;
    }
}
else
{
    stream.Write(bytes, 0, bytes.Length);
}

最佳答案

一切似乎都井井有条,但是最外面的if语句确实是多余的,如以下代码所示

int pos = 0;
int chunkSize = 10000;

while (pos < bytes.Length)
{
    if (pos + chunkSize > bytes.Length)
        chunkSize = bytes.Length - pos;

    stream.Write(bytes, pos, chunkSize);
    pos += chunkSize;
}


也将处理数组小于块大小的情况。

关于c# - Chunkinfying流。代码正确吗?需要第二只眼睛,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1761328/

10-13 06:54