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

本文关键字:System IO File WriteAllText FileStream 文件 | 更新日期: 2023-09-27 18:20:27

我看过许多关于VB.NET或C#.NET的示例/教程,其中作者使用FileStream写入/读取文件。我的问题是,这种方法比使用System.IO.File.Read/Write有什么好处吗?为什么大多数使用FileStream的例子只需一行代码就可以实现呢?

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

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);
}