如何用0xFF字节填充MemoryStream?

时间:2012-05-13 07:52:39

标签: c# padding memorystream

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

然后编辑MemoryStream并删除一些字节。

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

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

我知道,我总是可以遍历MemoryStream大小并添加0xFF,但我需要知道更快更有效的方法!

1 个答案:

答案 0 :(得分:3)

如果你有很多字节要写入流,那么编写一个数组而不是单独写每个字节可能更有效:

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);
}