2010-06-14 4 views
0

특정 Java 패키지에 넣은 words.txt 파일이 있으며 같은 위치에서 읽어야합니다. 배포를 제어하지 않기 때문에 패키지를 어디에 배포할지 모릅니다.패키지에서 파일을 읽는 방법 - Java의 리소스 번들과 같은 것

예제 위치 : com/example/files/words.txt.

ResourceBundle 클래스를 사용하여 상대적/절대 경로 대신 패키지 계층 구조에서 특성 파일을 읽는 방법을 알고 있습니다. like ResourceBundle.getBundle (com.example.files.words) 일반적인/유사한 경로가 아닌 패키지 계층 구조에서 읽을 수 있도록 일반 파일과 비슷한 것이 있습니까?

답변

4

클래스 Class에 정의 된 getResourceAsStream() 메서드를 사용하여 클래스 경로에서 리소스를 검색 할 수 있습니다. 클래스 WordReader이 패키지 com.example에있는 경우 다음 리소스 파일의 경로는이 작업을 수행하는 방법을 files/words.txt

package com.example; 

public class WordReader { 

    public void readWords() { 
    InputStream is = getClass().getResourceAsStream("files/words.txt"); 
    StringBuilder sb = new StringBuilder(); 
    for(Scanner sc = new Scanner(is); sc.hasNext();) 
     sb.append(sc.nextLine()).append('\n'); 

    String content = sb.toString(); 
    } 
} 
+0

유망 보이지만이가되어야 하는가? 이는 배포와 관련하여 매우 일반적인 문제 여야합니다. 나는 이것이 이것이 최선의 방법인지 궁금해하고있다. –

+0

예. 이 방법은 완벽하게 작동합니다. 감사! –