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

Flo*_*ind 18 .net c# vb.net

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

Mat*_*iko 38

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);
}
Run Code Online (Sandbox Code Playgroud)