【问题标题】:Redirect Console.WriteLine() output to string将 Console.WriteLine() 输出重定向到字符串
【发布时间】:2016-08-09 15:16:05
【问题描述】:

我需要将Console.WriteLine() 输出,并附加到一个字符串。我无法将 Main 方法更改为简单地附加到字符串而不是写入控制台 - 我需要一种方法来从控制台读取所有写入的行并将它们附加到字符串。

目前,我一直在使用FileStream 并将控制台输出重定向到一个文本文件,然后从中读取。

var fs = new FileStream("dataOut.txt", FileMode.Create);
var sw = new StreamWriter(fs);
Console.SetOut(sw);
Console.SetError(sw);

然后Console.WriteLine("whatever") 写入文本文件。但是,我想这样做而不是在文本文件中来回切换。

这样的事情可能吗?我意识到下面的例子没有。

string outString = "";
Console.SetOut(outString);
Console.SetError(outString);

【问题讨论】:

  • “我无法将 Main 方法更改为简单地附加到字符串而不是写入控制台” 为什么不呢?
  • 为什么不将信息存储在 StringBuilder Object 中,然后当你完成后将信息写入文本文件
  • @EdPlunkett 因为代码不是我写的,也没有修改权限。
  • this post 可能会有所帮助
  • @Irey 我希望你能从这些废话中解脱出来,然后看看招聘广告。

标签: c# console-application


【解决方案1】:

使用StringWriter

var sw = new StringWriter();
Console.SetOut(sw);
Console.SetError(sw);
Console.WriteLine("Hello world.");
string result = sw.ToString();

【讨论】:

    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 2013-05-18
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 2013-09-14
    相关资源
    最近更新 更多