写入文件时,FileStream与System.IO.File.WriteAllText相同

时间:2013-06-29 13:04:26

标签: c# .net vb.net

我见过很多关于VB.NET或C#.NET的示例/教程,其中作者使用FileStream来编写/读取文件。我的问题是这个方法有什么好处,而不是使用System.IO.File.Read/Write?为什么大多数使用FileStream的示例只能使用一行代码才能实现?

1 个答案:

答案 0 :(得分:34)

FileStream让您对编写文件有了更多的控制权,这在某些情况下会很有用。它还允许您保持文件句柄打开连续写入数据而不放弃控制。流的一些用例:

  • 多个输入
  • 来自内存/网络流的实时数据。

System.IO.File包含文件操作的包装器,用于执行基本操作,例如保存文件,将文件读取到行等等。它只是对FileStream的抽象。

从.NET源代码这里是WriteAllText内部的作用:

private static void InternalWriteAllText(string path,
    string contents, Encoding encoding)
{
    Contract.Requires(path != null);
    Contract.Requires(encoding != null);
    Contract.Requires(path.Length > 0);
    using (StreamWriter sw = new StreamWriter(path, false, encoding))
        sw.Write(contents);
}