我在c#中有一个控制台应用程序,我正在努力使控制台中的所有行都写入文件。我尝试过使用一个编写器。
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 :(得分: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();
}
}
答案 1 :(得分:0)
我认为您需要学习,如何使用Streams
,之后使用控制台输出流。您可以在此处查看如何执行此操作:http://msdn.microsoft.com/en-us/library/system.console.out.aspx