Я пишу программу, которая выполняет одно действие, если в командной строке содержится перенаправление потока, например >
или <
, но в противном случае выполняет другое действие.
Моим первым инстинктом было перебрать командную строку и проверить, равен ли каждый аргумент символу перенаправления, например:
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
Есть ли более простой способ сделать это? Спасибо за ваше время!