1

独自のバッファリング戦略があるため、BufferedStream を FileStream と組み合わせて使用​​しても意味がないことがわかりました。それでも、私は1つのことについて疑問に思っていました:

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

このコードは、バイトの一部を指定されたファイルに書き込みます。それ以前は、このバイトは内部バッファーに保持されているため、Dispose() メソッドを呼び出さないとファイルに何も書き込まれないことは理解しています。

さて、私の質問は次のとおりです。すべてのデータを FileStream のバッファーに入れたくない場合があります。たとえば、小さな書き込みのみを目的としているとしましょう。一部のデータを FileStream に関連付けられたファイルに直接配置する可能性はありますか (以前に内部バッファーに配置する必要はありません)。

ありがとう!

4

2 に答える 2

3

コンストラクターFileOptions.WriteThroughに渡すことができるFlag Enum値があります。FileStreamこれは、バッファリングなしで、基になるデータ ストレージに直接書き込むようにファイル ストリームに指示します。

于 2015-08-28T08:35:55.280 に答える