2016-01-19 109 views
0

我想從C#中的命令提示符下的文本文件閱讀閱讀,通過從標準輸入在C#

program.exe < textfile.txt 

但是,我無法找到正確的方法來做到這一點。

到目前爲止,我只能將路徑和文件名傳遞給string [] args,然後用StreamReader類打開文件。雖然這是一個可以接受的選擇,但我被告知,我認爲使用「<」的方法是標準輸入的重定向,具有諸如不需要文件處理的優點。

任何人都可以對此有所瞭解嗎?

編輯:Program.exe是我的C#應用​​程序。

+1

我相信這是一樣的[這個問題](http://stackoverflow.com/questions/199528),但與輸入來自一個文件,而不是一個不同的命令的結果 –

+1

你試過Console.ReadLine ()? – Codism

+1

如果program.exe是你的C#程序(它不清楚),那麼你會使用Console.ReadLine()。優點,嗯,不。調試很糟糕。 –

回答

2

您有正確的想法 - '<'符號表示Console類從您指定的文件讀取,而不是從控制檯讀取用戶輸入。當你這樣做時,你可以使用Console class來讀取它。

從STDIN讀取的優點是,用戶可以運行程序program.exe,並手動鍵入程序所期望的輸入,或者他們可以運行它作爲program.exe < input.txt。唯一一次這是一個缺點是,如果你知道你會一直提供一個文件,並考慮努力打字'<'符號太多...

2

在命令提示符<符號是幾個重定向運營商。具體來說,<符號是輸入重定向操作符。當您鍵入以下內容:program.exe < textfile.txt時,您告訴命令提示符執行program.exe並從文件中讀取命令輸入,而不是從鍵盤讀取輸入。這樣,命令提示符基本上打開了textfile.txt,並將其內容和「填充」到鍵盤緩衝區中,因此,就program.exe而言,輸入是從鍵盤讀取的,並且不知道您實際上是「填充「帶有文件內容的鍵盤緩衝區。

如果您的程序當前正在從文件讀取,您將需要修改程序。您不再需要從文件讀取數據,而是使用諸如Console.ReadLineConsole.ReadConsole.ReadKey之類的命令從鍵盤讀取數據。

就優點而言,優點是最小的。