명령 줄에 >
또는 <
과 같은 스트림 리디렉션이 포함되어 있지만 다른 동작이 필요한 경우 한 동작을 수행하는 프로그램을 작성하고 있습니다.명령 줄 인수에 스트림 리디렉션이 있는지 확인하는 방법
나의 첫번째 본능은 명령 줄을 통해 루프이었고, 각 인수는 리디렉션 기호와 동일한 경우는 다음과 같이 확인 :
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'에 전달하기 전에 인수에서 제거 된 것으로 가정합니다. –