2011-12-20 3 views
2

У меня есть консольное приложение в C#, и я пытаюсь сделать так, чтобы все строки в консоли записывались в файл. Я попытался использовать streamwriter.Запись строк в файл

using (StreamWriter writer = new StreamWriter(@"location", true)) 
{ 
    writer.WriteLine(Console.ReadLine()); 
} 

Но с использованием этих методов выходной текстовый файл был по-прежнему пуст. Я что-то упускаю?

Решение: написать это в том месте, где вы хотите начать запись тексту

 Console.Clear(); 
     StringWriter sw = null; 
     sw = new StringWriter(); 
     Console.SetOut(sw); 

пишут это в конце

string s = sw.GetStringBuilder().ToString(); 
     File.WriteAllText(@"file location", s); 

текст не будет отображаться на консоли, если я могу это сделать но в данном случае это не имеет значения.

+0

Вы хотя бы * попробуете * прочитать документацию? http://msdn.microsoft.com/en-us/library/system.console.readline.aspx –

+1

Я взял ваш код, и это сработало для меня. Введенный текст в консоль и выводится в файл. Console.ReadLine блокирует, пока вы не нажмете enter, я предполагаю, что вы это понимаете? – peter

+0

Работает и для меня. В чем проблема. Вы знаете, что вам нужно ввести текст, а затем нажмите «Ввод», и он будет возвращен с помощью Console.ReadLine(). Также относительно вашего кода с args, где args были определены? –

ответ

3
StringWriter sw = null; 
     try 
     { 
      sw = new StringWriter(); 
      Console.SetOut(sw); 
      Console.Write("test"); 
      string s = sw.GetStringBuilder().ToString(); 
      File.WriteAllText("c:\\BACKUP\\temp.txt", s); 
     }finally 
     { 
      if(sw != null) 
      { 
       sw.Dispose(); 
      } 
     } 
Смежные вопросы