如何将Console.WriteLine复制到文本文件?如何将控制台文本复制到文本文件?
static void ConsoleWrite(String value, ConsoleColor color)
{
Console.ForegroundColor = color;
FileStream ostrm;
StreamWriter writer;
TextWriter oldOut = Console.Out;
try
{
ostrm = new FileStream("./logfile.txt", FileMode.OpenOrCreate, FileAccess.Write);
writer = new StreamWriter(ostrm);
}
catch (Exception e)
{
Console.WriteLine("Cannot open logfile.txt for writing");
Console.WriteLine(e.Message);
return;
}
Console.SetOut(writer);
Console.SetError(writer);
Console.WriteLine(value.PadRight(Console.WindowWidth - 1));
Console.SetError(oldOut);
Console.SetOut(oldOut);
Console.WriteLine(value.PadRight(Console.WindowWidth - 1));
writer.Close();
ostrm.Close();
}
此代码只写最后一行。
(我需要在控制台中显示文本,并在同一时间将文本保存到一个文件中。)
ConsoleWrite("test1",ConsoleColor.Red);
ConsoleWrite("test2",ConsoleColor.Red);
ConsoleWrite("test3",ConsoleColor.Red);
在该文件中只有一行被保存:“TEST3” :(
您在关闭它之前是否尝试过冲洗作者? '作家.Flush()' – Dan
所有相同的只有最后一行被保存。 –