2011-12-20 89 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(); 
      } 
     }