私はシンプルなユーティリティ関数を書いて一束のテキストを集めたので、数回後にテキストファイルを開いて内容を見ることができます。BinaryWriterでファイルを追加する
public static void Accumulate(string text, string path)
{
var file = File.Open(path, FileMode.Append);
using (var binary = new BinaryWriter(file))
{
binary.Write(text);
file.Close();
}
}
ただし、区切り文字を使用して各実行の出力を区切っても効果はありません。例えば、私はbinary.Write(text + "\n");
にライターラインを変更し、その後binary.Write(text , "\n");
とも試してみました:
binary.Write(text);
binary.Write("\n");
file.Close();
しかし、どれも実際にこれがバイナリライターではなく、リテラルテキストライターであるのでおそらくある、働きません。正しい?
このプログラムを変更して、出力の間に新しい空白行を追加してください。書いたあとに次の行にジャンプしますか?
またfile.Close()
の代わりにfile.Flush()
を使用する必要があるのでしょうか?執筆後の適切な処分を保証するものはどれですか?
: だからこれを使用しますか?テキストだけで作業する場合、 'StreamWriter'を使わないのはなぜですか? – arbiter
BinaryWriterは、テキストではなくバイナリデータを厳密に書き込みます。 BinaryReaderを使用して、そのファイルを正しく読み取る必要があります。テキストファイルを読み込むプログラムがそのクラスを使用しているということはゼロです。たとえば、実際のテキストファイルを期待するプログラムのほとんどは、BinaryWriterが文字列の長さをエンコードしてファイルの終わりとしてエンコードするバイトを解釈します。代わりにFile.OpenText()を使用してどこかに取得します。 –