将控制台行写入文件

时间:2011-12-20 01:03:27

标签: c# console-application streamwriter console.writeline

我在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);
如果我这样做,

文本将不会显示在控制台上,但在这种情况下无关紧要。

2 个答案:

答案 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