2011-12-20 112 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 – 2011-12-20 01:09:28

+1

我把你的代碼和它爲我工作得很好。輸入文本到控制檯並輸出到文件。 Console.ReadLine塊直到你按下輸入,我假設你明白這一點? – peter 2011-12-20 01:14:55

+0

適用於我。什麼是問題。你知道你需要輸入文本,然後按下回車鍵,然後用Console.ReadLine()返回。關於你的代碼與參數,args被定義在哪裏? – 2011-12-20 01:39:13

回答

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