2016-11-06 3 views
0

미안은 단위 테스트에 내 자원 폴더에서 파일을 읽는 FileNotFound읽기 파일

내가

는하지만 시도 대상/테스트 클래스에서 파일을 볼 수 있습니다

파일을 찾을 수 없기 때문에이 하나가 예외를 발생 FileInputStream 객체로 파일을 래핑하는

ClassLoader classLoader = getClass().getClassLoader(); 
File file = new File(classLoader.getResource("CV.pdf").getFile()); 
FileInputStream fis = new FileInputStream(file) 

출력 debuging :

classLoader.getResource ("CV.pdf") :

file:/Users/Development/File%20-%20Test%20Java%20trial/Code/target/test-classes/CV.pdf 

아마도 내 폴더에 공백 이름이있을 수 있습니까?

파일이 있는지, 해당 폴더에서 파일을 볼 수 있습니다.

내가 여기서 잘못하고있는 것은 무엇입니까?.

감사합니다.

+0

그럼 어떻게이 URL의 값이 것을'의 getResource (...)'반환된다

더 유연한 방법 대신 InputStream를 사용하는 것입니다? 'getFile' 호출이 리턴하는 값은 무엇입니까? 'file'에서 끝나는 파일 경로는 무엇입니까? –

+0

내 질문에 출력을 – paul

+1

업데이트 URL 경로가 인코딩 된 URL을 디코딩해야합니다. http://stackoverflow.com/q/6138127/2670892 –

답변

2

정말 FileInputStream이 필요합니까?

실제 파일은 jar 파일 내부에도있을 수 있습니다 (maven에 test-jar 파일을 만들도록 지시 한 경우).

try(final InputStream is = getClass().getResource("CV.pdf").openStream()) 
{ 
    //Do something with is 
} 
+0

'getClass(). getResourceAsStream ("CV.pdf")'도 할 수 있습니다. – VGR