A D*_*A D 2 java redirect command-line parsing
我正在编写一个程序,如果命令行包含流重定向(例如>或)<,则执行一个操作,否则执行另一个操作.
我的第一直觉是遍历命令行并检查每个参数是否等于重定向符号,如下所示:
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;
}
Run Code Online (Sandbox Code Playgroud)
但是,它总是返回false.该行System.out.println(args[i]);显示未识别任何重定向和后续文件名.例如:
project\src>java myProgram.Client localhost 1234 > myFile.txt
localhost
1234
Run Code Online (Sandbox Code Playgroud)
而它应该是:
project\src>java myProgram.Client localhost 1234 > myFile.txt
localhost
1234
>
myFile.txt
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法可以做到这一点?谢谢你的时间!
重定向是shell语法的一部分,而不是传递给程序的东西.而是检查是否System.console()返回非空值.
| 归档时间: |
|
| 查看次数: |
465 次 |
| 最近记录: |