FileStream 及其缓冲策略

FileStream and it's buffering strategy

我发现将 BufferedStream 与 FileStream 结合使用没有意义,因为它有自己的缓冲策略。然而,我想知道一件事:

FileStream fsWithBuffer = new FileStream("buf.dat", FileMode.OpenOrCreate,
                FileAccess.ReadWrite, FileShare.None, 255);
            fsWithBuffer.WriteByte((byte)4);
            fsWithBuffer.Dispose();

这段代码将字节的一部分写入指定的文件。在此之前,这个字节保存在内部缓冲区中,所以我知道如果我不调用 Dispose() 方法,则不会向文件写入任何内容。

现在,我的问题是:有时我们不想将所有数据都放在 FileStream 的缓冲区中,假设它只用于小写操作。是否可以将一些数据直接放入与 FileStream 关​​联的文件中(而不是提前放入内部缓冲区)?

谢谢!

有一个 Flag Enum FileOptions.WriteThrough 值可以传递给 FileStream 构造函数。它指示文件流直接写入底层数据存储而无需任何缓冲。

总结一下这个问题,官方没有给出答案,我这里找的是Flush()方法。它将实际缓冲区保存到与 FileStream 关​​联的文件中,这是我需要的:)