ResourceBundle 사용하기
2009. 11. 17. 00:51
ResourceBundle 사용하기
클래스 상속관계 java.lang.Object - java.util.ResourceBundle
ResourceBundle은 다음과 같은 특징을 같습니다.
- 다른 국가의 언어에 맞추어 로컬라이징을 할 수 있습니다.
- 복수의 로케일을 동시에 처리할 수 있습니다.
- 새로운 로케일의 추가가 쉽습니다.
ResourceBundle을 사용하기 위해서는 다음과 같이 getBundle() 메서드를 사용하여 ResourceBundle 클래스를 로드합니다.
ResourceBundle myResource = ResourceBundle("MyResource", 로케일);
로케일의 생략시 현재 사용하는 로케일이 지정됩니다. 한글은 'ko_KR'로 로케일이 지정됩니다. 'MyResource'의 이름은 베이스 네임으로 로케일에 따라 자동으로 베이스 네임과 함께 로케일 이름이 붙은 이름을 먼저 찾게 됩니다. 예를 들면 로케일이 'ko_KR'인 경우 'MyResource_ko_KR'로 확장되며, 이 파일이 존재하지 않는 경우, 'MyResource_ko.properties'를 찾고 이 파일 존재하지 않으면 최종적으로 'MyResource_ko_KR.properties'이라는 리소스 파일을 현재 클래스가 위치한 패키지 내에서 찾게 됩니다. 만일 이런 이름의 파일이 없을 경우는 'MyResource.properties' 파일을 찾게 됩니다.
package net.jeongsam.extra; import java.util.Iterator; import java.util.ResourceBundle; import java.util.Set; public class ResourceLocaleEx01 { public static void main(String[] args) { // net.jeongsam.extra 패키지에서 MyResource_ko_KR.properties 파일을 탐색한다. ResourceBundle myResource = ResourceBundle.getBundle("net.jeongsam.extra.MyResource"); Setkeys = myResource.keySet(); Iterator itKeys = keys.iterator(); while (itKeys.hasNext()) { String key = itKeys.next(); System.out.println(key + "=" + myResource.getString(key)); } } }