Запись строк консоли в файл

У меня есть консольное приложение на С#, и я пытаюсь сделать так, чтобы все строки в консоли записывались в файл. Я пробовал использовать стримрайтер.

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

текст не будет отображаться на консоли, если я это сделаю, но в данном случае это не имеет значения.


person SharkRetriever    schedule 20.12.2011    source источник
comment
Вы хотя бы пытались прочитать документацию? msdn.microsoft.com/en-us/library/system. console.readline.aspx   -  person Ondrej Tucny    schedule 20.12.2011
comment
Я взял ваш код, и он отлично сработал для меня. Набрал текст в консоль и вывел в файл. Console.ReadLine блокируется, пока вы не нажмете ввод, я полагаю, вы это понимаете?   -  person peter    schedule 20.12.2011
comment
Работает и для меня. В чем проблема. Вы знаете, что вам нужно ввести текст, затем нажать Enter, и он будет возвращен с помощью Console.ReadLine(). Также относительно вашего кода с аргументами, где были определены аргументы?   -  person Adam    schedule 20.12.2011


Ответы (1)


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

person Adilson de Almeida Jr    schedule 20.12.2011