我工作的一個程序,我想它這樣命令行渣華,文件參數和管道輸入
my_program -o Words
凡「字」是一個文件的功能,但我也想它與無法從文件管道輸入功能,所以
grep test Words | my_program -o
如何收集和儲存在數據管道?我怎樣才能檢查數據是否被傳入?
我工作的一個程序,我想它這樣命令行渣華,文件參數和管道輸入
my_program -o Words
凡「字」是一個文件的功能,但我也想它與無法從文件管道輸入功能,所以
grep test Words | my_program -o
如何收集和儲存在數據管道?我怎樣才能檢查數據是否被傳入?
要讀取管道數據,您應該從程序中的標準輸入讀取數據。
grep test Words | my_program -o
在您的例子|
管grep test Words
標準輸出入my_program
標準輸入。請參閱 article on streams, pipes, and redirects。
數據管道可以從System.in
使用標準工具,如Scanner
,BufferedInputReader
等讀取
而不是檢查管道,在輸入時,它可能會更容易檢查相反的情況:如果一個文件已被指定爲參數,並且如果它沒有被,然後從標準輸入
讀取在Java:
System.in
「是」的stdin;System.out
「is」stdout;System.err
「is」stderr。通過使用管道,重定向標準輸入,因此foo | bar
重定向任何foo
輸出到標準輸出爲bar
的標準輸入。
System.in
是InputStream
。如果你想有可能從stdin和一個文件中讀取,一種可能性是這樣做的:
InputStream in = System.in;
if (hasOptionToReadFromFile)
in = Files.newInputStream(Paths.get(fileName));
「一個編程任務」,如在作業? – amphibient
寶貴的信息,但請記住[標籤:家庭作業]標籤是禁止的。 @foampile – 11684