首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >File.CreateText / File.AppendText与File.AppendAllText

File.CreateText / File.AppendText与File.AppendAllText
EN

Stack Overflow用户
提问于 2017-02-23 12:01:28
回答 1查看 4.5K关注 0票数 7

为了使用File.CreateText()File.AppendText(),您必须:

  1. 通过调用这些方法中的任何一个来打开流
  2. 写消息
  3. 关闭溪流
  4. 处理流

为了使用File.AppendAllText(),您只需使用它,如果文件还不存在,它也会创建该文件。

我说的是.Net 3.5

有什么理由像当时的第一种方法那样去做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-23 12:17:42

当我们查看实现 of File.AppendAllText时,我们发现它是一个快捷方式,实现方式如下:

代码语言:javascript
复制
using (StreamWriter sw = new StreamWriter(path, true, encoding))
    sw.Write(contents);

其他方法打开一个流并返回它,它由调用者来写它,传递它,等等。

要问这样一个设计决策背后的原因总是很困难的。在这种情况下,似乎很明显:"All“infix表示调用方将拥有一个应该立即写入的完整字符串,并且不需要保持流打开--它是为方便而添加的,因为这是一个经常使用的用例。

为了支持这一点,我找到了佩托德的引用

然而,在File2.0中,一些额外的静态方法被添加到.NET类中,这些方法具有很大的意义。这些方法允许您在一条语句中打开、读取(或写入)和关闭文件。

为了支持简化的方法,完全删除以前的方法将意味着灵活性的损失--开发人员仍然需要使用流。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42415206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档