は、このC#コードを仮定しますStreamWriter.flush()を実行する必要がありますか?
using (MemoryStream stream = new MemoryStream())
{
StreamWriter normalWriter = new StreamWriter(stream);
BinaryWriter binaryWriter = new BinaryWriter(stream);
foreach(...)
{
binaryWriter.Write(number);
normalWriter.WriteLine(name); //<~~ easier to reader afterward.
}
return MemoryStream.ToArray();
}
私の質問は以下のとおりです。私は秩序を維持するために ループ内にフラッシュを使用する
- 必要がありますか?
- 返品は
MemoryStream.ToArray()
ですか?私はコンベンションとしてusing
ブロックを使用していますが、私はそれを混乱させる恐れがあります。
2つのストリームライターで1つのストリームをラップすると、危険な/エラーが発生しやすいように見えますが、この場合、フラッシングは何も行いません。 FlushはMemoryStreamの読み込みに影響せず、バッファされたバイトをそれぞれのストリームに書き込むだけです。 – mbillard
これは、値の書き方に影響しますが、AutoFlushをtrueに設定しない限り、StreamWriterは何かをMemoryStreamに長時間書き込むことはできません。それはちょうど私に脆いと感じる。 –
問題は、名前の最後に改行が必要なことです.WriteLineは安全な方法です。 – Nefzen