개인프로젝트로 작은 java 라이브러리를 만들고 있다. 항상 라이브러리를 가져다 쓰는 입장이었는데, 만들려고 하니 평소에는 쉽게 지나치던 것들도 유심히 따져보게된다.
1. Properties
Java 1.0부터 있는 클래스다. Java 1.7기준으로 javadoc과 tutorial을 볼 수 있다. 보통 properties 파일은 UTF-8이 아니어서 한글을 입력하면 \u313B처럼 인코딩되어 보이곤 하는데, load() 메서드에 인코딩을 UTF-8로 지정한 InputStreamReader을 던지면 UTF-8도 상관없다고 한다.
2. ResourceBundle
Java 1.1부터 있는 클래스다. Java 1.7기준의 javadoc과 tutorial은 각각의 링크에서...
3. 차이점
두 클래스의 차이점은 Locale에 있는 듯 하다. Locale마다 다른 properties 파일을 읽어서 처리하고자 한다면 ResouceBundle은 이를 Locale 클래스 기반으로 알아서 처리해준다. 클래스이름에 "Bundle"이 있는 이유도 각 언어마다 properties파일을 만들기 때문에 "묶음"이 될 텐데 이 떄문인 듯 하다. 관련 링크1, 링크2
나는 지금 라이브러리를 사용하는 곳의 클래스패스에 존재하는 properties 파일을 읽어서 DB접속이나 라이브러리 기능을 제어하고자 하므로 Properties를 사용하는 것이 맞을 것 같다.
댓글 없음:
댓글 쓰기