2014-01-14 4 views
0

전쟁에서 속성 파일을 가져와야합니다.전쟁에서 파일을 가져올 수 없습니다.

String fileName = loadFileName(); 
try { 
    FileInputStream fis = new FileInputStream(new File(Thread.currentThread().getContextClassLoader().getResource(fileName).toURI())); 
    property.load(fis); 
} 
......... 

private String loadFileName(){ 
    if(currentLocale.equals(new Locale("en"))){ 
     return "file:///locale/output/language.properties"; 
    } else { 
     return "file:///locale/output/language_ru.properties"; 
    } 
} 

이 파일은 main/resources/locale/output 폴더에 있습니다. 불행하게도이 접근법은 작동하지 않으며 모든 속성 값은 null입니다. 전쟁에서 파일을 올바르게로드하는 방법? 서버 : JBoss의 7

enter image description here

+0

리소스가 올바른 위치에 있으면'getResourceAsStream (fileName)'을 사용하여 직접'InputStream'을 읽으십시오. –

+0

코드를 보면 [ResourceBundle] (http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html)을 더 쉽게 사용할 수 있습니다. –

+0

@SotiriosDelimanolis 도움이되지 않습니다. 어쩌면 내 길은 틀렸어? 전체 경로로 그림을 추가합니다. –

답변

1

전쟁 AS 아카이브 파일입니다. 아카이브 내의 "파일"은 파일로 처리 할 수 ​​없습니다. #getResourceAsStream(String name)을 통해 리소스를 열면됩니다. 여기에서 name/locale/output/language.properties 일 것입니다.

물론 자신을 구축해서는 안됩니다.

+0

감사합니다. 이제 작동 중입니다. –

관련 문제