要使用File.CreateText()
和File.AppendText()
,您必须:
要使用File.Append
All
Text()
,您只需使用它,如果文件尚不存在,它也会创建该文件。
我在谈论.Net 3.5
当时有没有理由像上面第一种方法那样做?
答案 0 :(得分:4)
当我们查看File.AppendAllText
的{{3}}时,我们发现它是一个快捷方式,实现方式如下:
using (StreamWriter sw = new StreamWriter(path, true, encoding))
sw.Write(contents);
其他方法打开一个流并返回它,由调用者写入,传递它等等。
总是很难问这样的设计决定背后的原因。在这种情况下,似乎很明显:" All"中缀表示调用者有一个应该立即写入的完整字符串,并且不需要保持流打开 - 为方便起见,它已被添加,因为这是一个常见的用例。
为了支持这一点,我从implementation找到了这句话:
但是,在.NET 2.0中,一些额外的静态方法被添加到File类中,这些方法非常有意义。这些方法允许您在一个语句中打开,读取(或写入)和关闭文件。
完全删除以前的方法以支持简化方法将意味着灵活性的损失 - 开发人员仍然会遇到需要使用流的情况。