Запись строк консоли в файл - PullRequest
2 голосов
/ 20 декабря 2011

У меня есть консольное приложение на 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 ]

3 голосов
/ 20 декабря 2011
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();
            }
        }
0 голосов
/ 20 декабря 2011

Думаю, вам нужно научиться использовать Streams для работы с потоком вывода консоли.Вы можете посмотреть, как это сделать здесь: http://msdn.microsoft.com/en-us/library/system.console.out.aspx

...