StreamWriter
.NET 4.5の既存のファイルにテキストを追加するためにaを使用しているときに、何か面白いことに遭遇しましたFileStream
(古いフレームワークは試していません)。私は2つの方法を試しました。1つは機能し、もう1つは機能しませんでした。両者の違いは何だろうと思います。
どちらのメソッドにも、上部に次のコードが含まれていました
if (!File.Exists(filepath))
using (File.Create(filepath));
using
私は、個人的な経験から、アプリケーションがファイルを完全に閉じることを保証するための最良の方法であることがわかったので、ステートメントに作成しました。
非動作方法:
using (FileStream f = new FileStream(filepath, FileMode.Append,FileAccess.Write))
(new StreamWriter(f)).WriteLine("somestring");
この方法では、ファイルに何も追加されません。
作業方法:
using (FileStream f = new FileStream(filepath, FileMode.Append,FileAccess.Write))
using (StreamWriter s = new StreamWriter(f))
s.WriteLine("somestring");
何を検索すればよいかよくわからないまま、少しグーグルを実行しましたが、有益な情報は見つかりませんでした。StreamWriter
では、 (匿名ではない?名前が付けられた?)が機能する場所で匿名が失敗するのはなぜStreamWriter
ですか?