2017-12-02 22 views
2

커맨드 라인 인수로 두 개의 파일을 가져 와서 파일을 열고 데이터 구조를 만들기 위해 파일에서 데이터를 읽어야하는 프로그램을 만들고 있습니다. 지금까지 File()을 사용하여 파일을 열고 Scanner를 사용하여 데이터를 읽을 수있는 구조를 만들었습니다. 문제는 내가 제공 한 때문에, 나는이이 프로그램을 실행하려고하는 사람을 위해 일 것입니다 생각하지 않습니다이Java에서 txt 파일을 열 수있는 적절한 경로를 찾으려면 어떻게해야합니까? 그 이름은 명령 행 인자로 제공됩니까?

File f1 = new File("F:/MinSpan/resources/cities.txt"); 
Scanner sc1 = new Scanner(f1); 

같은 파일의 호출에 특정 경로를 제공하고있다한다는 것이다 내 특정 txt 파일이있는 경로 - 내 플래시 드라이브 (F)와 일부 폴더에 있습니다. 사용자가 제공 한 cmd 인자를 기반으로 File()에 args [] 값을 전달하도록 프로그램 할 수있는 방법이 있습니까?

새로운 파일 (args [2])을 사용하여 이미 시도했지만 경로가 없으므로 파일을 찾을 수 없습니다.

+2

당신에게 전달되는'String'을 사용하고 파일이 존재하는지 여부를 확인하고 적절한 조치를 취하십시오 - 사용자가 유효한 경로/파일을 전달하지 않은 경우 테스트하십시오 참고로, 그것은 당신의 잘못이 아니며, 가능성을 다루기 만하면됩니다. – MadProgrammer

답변

0

java -jar program.jar FILE과 같은 프로그램의 경우 Stringargs[]의 색인 0에 체크하십시오.

그런 다음 파일을 구성하십시오. 파일이 존재하는지 (java.io, File.exists()) 확인하고 사용자에게 오류 메시지를 반환합니다.

0
만 두 경로를 전달하는 경우에 args [] 0에서 시작 그래서 당신이 사용하고자하는 것 때문에, 인수 [2] 실 거예요, 아무것도 반환, 때문에 그 이유는

:

new File(args[0]); 
new File(args[1]); 

그게 의미가 있습니까?

+0

그렇습니다. 죄송 합니다만 전체 프로그램을 설명하지 못했습니다 : args [0]은 드라이브 문자로 처리됩니다. 그래서 args [1]와 args [2]를 파일 이름으로 전달합니다. – TrpCode