2014-01-17 2 views
1

Java 파일을 실행할 때 명령 줄에서 인수와 표준 입력을 모두 읽는 데 문제가 있습니다. 나는 독자적으로 논쟁에서 그것을 읽을 수 있고 그것의 자신에 그러나 stdin를 함께 읽을 수있다; 예를 들면 :명령 줄 java에서 stdin과 인수를 모두 읽습니다.

java myFile 6 2 < numbers.txt 

나는 배열 6 2를 저장하는 얻을 수 있지만 그것은 단지 "<"와 "text.txt"도 저장합니다. 비슷한 문제를 설명하는 온라인 자료를 찾을 수 없었으므로 어디서부터 시작해야할지 잘 모릅니다.

+5

이 코드를 추가하면'> file.txt' 진언 더 유닉스 스타일 –

+1

여기에 매우 도움이 될 수 있습니다, args []가 모든 인수를'main()'으로 만들었 기 때문에) Java가이를 지원할 지 확신하지 못합니다. 대신 Java로 파일을 쓰려고 했습니까? – Makoto

+0

입력 리디렉션에 '<'를 사용하면 안됩니까? – blackcompe

답변

2

main 메서드의 String[] 형식화 된 매개 변수에 명령 줄 인수가 수신됩니다. 입력 리디렉션은 명령 줄에서 호출 된 다른 프로세스와 동일하게 수행됩니다. 바이트는 EOF에 도달 할 때까지 stdin에서 읽음으로써 검색 될 수 있습니다.

명령 : 추가 정보를 위해 java myClass myArg < myFile

public static void main(String[] args) 
{ 
    System.out.println("Arg 1 = " + args[0] + "\nStdin = "); 
    try (InputStreamReader isr = new InputStreamReader(System.in)) { 
     int ch; 
     while((ch = isr.read()) != -1) 
      System.out.print((char)ch); 
    }catch(IOException e) { 
     e.printStackTrace(); 
    } 
} 

:

http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html http://docs.oracle.com/javase/tutorial/essential/io/cl.html

+0

완벽한! 인수가 표준과 표준의 차이를 어떻게 인식하는지 설명해 주시겠습니까? – user2152251

+0

@ user2152251 : 내 소식을 업데이트했습니다. – blackcompe

+0

화려한 감사, 그래서 내가 배열에 문자열 관련 파일을 (문자열에 해당 문자열을 변경하고 배열 삽입 선을 대신 인쇄 줄에 배치해야 할 경우이 인스턴스에서 정수 반대) 읽을 수 있었다. – user2152251

관련 문제