간단한 ResourceBundle 사용법
JDK 1.1부터는 각 로캘에 따라 다른 리소스를 사용하도록 지정할 수 있습니다.
여기에서는 ListResourceBundle 클래스를 사용하는 간단한 예를 보여줍니다.
ResourceBundle을 사용할 때 주의할 점은 다음과 같습니다.
- ListResourceBundle에서 상속한 클래스는 반드시 public으로 선언해야 합니다.
- ResourceBundle.getBundle() 메쏘드가 리소스를 찾는 방법은
먼저 번들 클래스를 찾고
없으면 다음으로 properties 파일을 찾습니다.
여러 개의 클래스나 properties 파일이 있을 경우 해당 로캘에 가장 가까운 것부터 사용합니다.
- 한글이 있을 경우 컴파일할 때 -encoding EUC_KR 을 지정해주는 것이 좋은 습관입니다.
- 디지털 유닉스의 JDK 1.2는 한글 로캘에서 제대로 동작하지 않습니다.
(System.in과 System.out의 기본 로캘이 EUC_KR이 아니라 ASCII7이란 값으로 나타납니다.)
- 리소스 클래스로부터 리소스 번들을 찾을 때에는 String 클래스의 인코딩 값이 특별한 처리를 필요로 하지 않지만
properties 파일에서 읽어올 때에는 ISO8859_1 인코딩으로 간주되어 있으므로 한글 문자열일 경우 별도의 처리가 필요합니다.
예를 들어
try {
String ok =
new String(bundle.getString("OKKey").getBytes("8859_1"), "EUC_KR");
} catch (java.io.UnsupportedEncodingException uee) {
out.println(uee.toString());
}
간단한 예제
Tutorial로 돌아가기
Last modified: Wed Jan 12 14:25:59 2000