我寫一個程序,它有一個行動,如果在命令行中包含流重定向,如>
或<
,但需要另一個動作,否則。如何判斷命令行參數包含流重定向
我的第一反應是循環通過命令行,並檢查是否每個參數等於重定向符號,就像這樣:
public boolean hasRedirection(String[] args){
boolean flag = false;
int length = args.length;
int i;
for(i = 0; i < length; i++){
System.out.println(args[i]);
if(args[i].equals(">") || args[i].equals("<"))
flag = true;
}
return flag;
}
然而,它始終返回false。 System.out.println(args[i]);
行顯示任何重定向和後續文件名都未被識別。例如:
project\src>java myProgram.Client localhost 1234 > myFile.txt
localhost
1234
而它應該是:
project\src>java myProgram.Client localhost 1234 > myFile.txt
localhost
1234
>
myFile.txt
是否有一個更簡單的方法,我可以做到這一點?謝謝你的時間!
重定向是否由外殼提供了一個機制,所以我假設那些從參數剝離出來他們傳遞給你的'main'之前。 –