如何用 0xFF 字节填充 MemoryStream?

Wri*_*ick 3 c# memorystream padding

我有一个MemoryStream在运行时从文件创建的。

然后对其MemoryStream进行编辑并删除一些字节。

现在我必须维护一个恒定的文件大小,所以我必须MemoryStream用 0xFF 字节填充..

执行此操作最快的方法是什么?

我知道,我总是可以循环遍历MemoryStream大小并添加 0xFF,但我需要知道一种更快、更有效的方法来做到这一点!

dtb*_*dtb 5

如果您有很多字节要写入流,则写入数组可能比单独写入每个字节更有效:

static void Fill(this Stream stream, byte value, int count)
{
    var buffer = new byte[64];
    for (int i = 0; i < buffer.Length; i++)
    {
        buffer[i] = value;
    }
    while (count > buffer.Length)
    {
        stream.Write(buffer, 0, buffer.Length);
        count -= buffer.Length;
    }
    stream.Write(buffer, 0, count);
}
Run Code Online (Sandbox Code Playgroud)