2013-06-29 58 views
16

我見過很多關於VB.NET或C#.NET的示例/教程,其中作者使用FileStream來從文件中讀/寫。我的問題是這種方法有什麼好處,而不是使用System.IO.File.Read/Write?爲什麼大多數使用FileStream的例子只需使用一行代碼就可以實現相同的效果?當寫入文件時,FileStream與System.IO.File.WriteAllText

+4

'WriteAllText'是偉大的,當你有你想要寫一個文件一個字符串。但是如果你有大量的字符串需要寫入,那麼寫入'StreamWriter'會比寫一個字符串更容易,然後使用'WriteAllText'來寫入。 –

回答

29

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

通常使用FileStream來覆蓋File。*的用例是控制文件的鎖定。 – user3791372