如何将控制台中键入的内容保存到文本文件中?

时间:2013-11-25 10:16:26

标签: c# console-application

是否可以将控制台中键入的内容保存到文本文件中?

我知道如何从文本文件中写入和读取,但我想知道如何将控制台本身输入的内容保存到文本文件中。

因此,打开控制台,在控制台本身(黑色控制台屏幕)中键入文本,按Enter键(或其他内容),然后将其保存到文件中。

我没有找到任何有效的答案,所以我开始认为这是不可能的。

旁注;是否有该控制台应用程序窗口的另一个名称?或者它实际上是否称为控制台应用程序窗口?

4 个答案:

答案 0 :(得分:2)

  

我没有找到任何有效的答案,所以我开始认为这是不可能的。

你正在寻找什么? Console.ReadLine()会返回string,这很容易appended to a file

using (var writer = new StreamWriter("ConsoleOutput.txt", append: true))
{
    string line = Console.ReadLine();
    writer.WriteLine(line);
}

并非所有问题都在网上完全按照您的要求解决;将它分解为较小的部分(“从控制台获取字符串”,“将字符串写入文件”),然后找到特定于您情况的解决方案。


如果这是关于从另一个进程读取输出,则这是How to spawn a process and capture its STDOUT in .NET?的副本。

答案 1 :(得分:1)

有不同的方法:

  1. 在循环中使用Console.ReadLine()直到某个特定符号。同时将行添加到文件流中。
  2. 另一种使用Console.SetOUt方法的优雅解决方案。请查看 MSDN 中的第二个示例。几乎你需要什么。

答案 2 :(得分:1)

使用此代码将控制台输出重定向到名为consoleOut.txt

的文本文件
FileStream filestream = new FileStream("consoleOut.txt", FileMode.Create);
var streamwriter = new StreamWriter(filestream);
streamwriter.AutoFlush = true;
Console.SetOut(streamwriter);

答案 3 :(得分:0)

如果它不是外部控制台窗口,您可以使用Console.ReadLine()获取键入的字符串并通过调用例如将其保存到文件中。 File.WriteAllText,StreamWriter,...