2013-06-29 2 views
16

Я видел много примеров/руководств о VB.NET или C# .NET, где автор использует FileStream для записи/чтения из файла. Мой вопрос: есть ли какая-либо польза от этого метода, а не с использованием System.IO.File.Read/Write? Почему большинство примеров используют FileStream, когда то же самое можно достичь, используя только одну строку кода?FileStream Vs 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 над файлом. * Предназначена для управления блокировкой файла. – user3791372

Смежные вопросы