从C#中的标准输入读取

时间:2016-01-19 22:21:24

标签: c# input

我正在尝试通过C#中的命令提示符读取文本文件,通过

program.exe < textfile.txt 

但是,我找不到正确的方法。

到目前为止,我只能将路径和文件名传递给string [] args,然后使用StreamReader类打开文件。虽然这是一个可接受的替代方案,但我被告知使用“&lt;”的方法,我认为它是标准输入的重定向,提供了诸如不需要文件处理等优点。

任何人都可以对此有所了解吗?

编辑:Program.exe是我的C#应用​​程序。

2 个答案:

答案 0 :(得分:2)

你有正确的想法 - '&lt;' symbol表示Console类从您指定的文件中读取,而不是从控制台读取用户输入。执行此操作时,您可以使用Console class

进行阅读

从STDIN读取的优点是用户可以将程序作为program.exe运行,并手动输入程序所期望的输入,或者可以将其作为program.exe < input.txt运行。这是一个不利的唯一一次,如果你知道你将永远提供一个文件,并考虑输入'&lt;'的努力符号太多......

答案 1 :(得分:2)

在命令提示符中,<符号是多个重定向运算符之一。具体来说,<符号是输入重定向运算符。当您键入:program.exe < textfile.txt时,您告诉命令提示符执行program.exe并从文件中读取命令输入,而不是从键盘读取输入。通过这种方式,命令提示符基本上打开textfile.txt并将其内容和“填充它”放入键盘缓冲区,因此,就program.exe而言,输入是从键盘读取的,不知道你实际上是在用文件中的内容“填充”键盘缓冲区。

如果您的程序当前正在从文件中读取,则需要修改您的程序。您不再希望从文件中读取数据,而是使用Console.ReadLineConsole.ReadConsole.ReadKey等命令从键盘读取。

就优势而言,优势很小。