2015-05-20 2 views
-2

Как использовать объект Stream для записи текста в файл? Он просит байт ...Использование Stream для ввода текста

Вот код:

public override void UpdateLog(string emailId) 
    { 
     using(Stream s = File.OpenWrite(logFile)) 
      s.Write(emailId); 
    } 

EMAILID должен быть записан в виде строки текста в файле. Кроме того, мне нужно включить \ n, чтобы текст был написан как новая строка?

+3

Быстрый [Google] (https://msdn.microsoft.com/en-us/library/6ka1wd3w%28v = vs.110% 29.aspx) поиск выполнит задание ... – Eminem

+0

Посмотрите в класс 'StreamWriter' –

+1

. Или еще лучше, не используйте потоки вообще, если нет необходимости передавать потоки данных (так как есть 't здесь) и просто используйте более подходящие 'File' методы, которые делают * точно * то, что вы хотите. – Servy

ответ

1

Вы должны использовать класс StreamWriter как это вместо того, чтобы добавить:

public override void UpdateLog(string emailId) 
{ 
    using (StreamWriter writer = File.AppendText(path)) 
    { 
     writer.writeLine(emailId); 
    } 
} 

Путь должен быть строкой, путь к файлу.

0

Вы должны использовать класс StreamWriter. И сделать что-то похожее на следующее:

using (StreamWriter writer = 
     new StreamWriter("somefile.txt", true)) 
    { 
     writer.Write("hello"); 
     writer.WriteLine("hello again"); 
     writer.WriteLine("and again"); 
    } 
+0

Будет ли оно прикрепляться к файлу вместо того, чтобы перезаписывать файл при вызове? – bordeo

+0

@bordeo Есть простой способ узнать. – Servy

+0

Я говорю это, потому что я использовал streamwriter, и это было переписывание файла вместо добавления. Как мне это сделать с помощью методов File? – bordeo

0

Если вы хотите сохранить ваш текущий код, который вы можете расширить это следующим образом:

public override void UpdateLog(string emailId) 
{ 
    using (Stream s = File.OpenWrite(logFile)) 
    { 
     using (StreamWriter writer = new StreamWriter(s)) 
     { 
      writer.Write(emailId); 
     } 
    } 
} 
Смежные вопросы