【发布时间】:2015-11-22 20:29:04
【问题描述】:
我发现将 BufferedStream 与 FileStream 结合使用是没有意义的,因为它有自己的缓冲策略。然而,我想知道一件事:
FileStream fsWithBuffer = new FileStream("buf.dat", FileMode.OpenOrCreate,
FileAccess.ReadWrite, FileShare.None, 255);
fsWithBuffer.WriteByte((byte)4);
fsWithBuffer.Dispose();
此代码将一部分字节写入指定文件。在此之前,这个字节保存在内部缓冲区中,所以我知道如果我不调用 Dispose() 方法,则不会将任何内容写入文件。
现在,我的问题是:有时我们不想将所有数据放在 FileStream 的缓冲区中,假设它仅用于小写入。是否有可能将一些数据直接放入与 FileStream 关联的文件中(而不是将其更早放入内部缓冲区)?
谢谢!
【问题讨论】:
-
您是在问是否可以在没有缓冲区的情况下使用
FileStream?我看不出重点,你还是要处理 FileStream 类。 -
你总是可以打电话给
Flush,虽然你不会以这种方式绕过缓冲区(而且我看不出没有这样做的意义)。 -
好的,我明白了。谢谢 :) 无论如何,我想 Flush 是我在这种情况下所寻找的。span>
标签: c# io filestream bufferstrategy bufferedstream