2011-07-28 4 views
3

나는 파일을 읽고있는 자바 프로젝트를 가지고있다.자바의 현재 디렉토리에서 파일 읽기

String dataset = "./myFile.dat"; 

을하지만 점점 오전 : : 파일이 현재 디렉토리에이기 때문에 나는이 일을하고 java.io.FileNotFoundException를 그것은 파일을 찾을 수 없습니다라고.

해결 방법? 나는 그것이 작동하는 전체 경로를 ... 줄 때

String dataset = "C:\\eclipse\\workspace\\p1\\src\\myFile.dat"; 
+0

'System.getProperty ("user.dir")'을 앞에 붙이면 어떻게 될까요? – cwallenpoole

+2

아마도 도움이 될 수 있습니다. http://stackoverflow.com/questions/1480398/java-reading-a-file-from-current-directory – talnicolas

답변

1

myFile.dat 경우, 런타임 클래스 -에있는 항아리에 포함되어야한다 응용 프로그램의 경로. 그런 다음 자원에 대한 URL은

URL urlToData = this.getClass().getResource("path/in/jar/to/myFile.dat"); 

user.dir 특성에 의존하지 마십시오 .. 사용하여 형성 될 수있다. 앱의 방식에 따라 다릅니다. 이 시작되면 응용 프로그램 또는 데이터의 디렉토리와 매우 다른 곳을 가리킬 수 있습니다.

0

이 시도 : 응용 프로그램 자원이

String dataset = System.getProperty("user.dir") + "/myFile.dat"; 
+0

이것은 약한 접근법입니다. 자세한 내용은 내 답변뿐만 아니라 @talnicolas가 연결된 스레드를 참조하십시오. –

+0

-1 처음에는 파일 이름 앞에'/'를 쓰지 않았습니다. 그것은 심지어 더 깨지기 쉽습니다. 'File (File, String)'생성자는 다른 플랫폼에서 다른 분리자를 설명 할 것입니다. 파일 객체의'String' 표현을 생성하기 위해 (필자가 권장하지는 않지만)'System.getProperty ("file.separator")'를 사용하십시오. –

관련 문제