StreamWriter
在 .NET 4.5 中使用a将文本附加到现有文件时,我遇到了一些有趣的事情FileStream
(没有尝试过任何较旧的框架)。我尝试了两种方法,一种有效,一种无效。我想知道两者之间的区别是什么。
两种方法都在顶部包含以下代码
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
工作的地方失败?