存美の愛ブロGoo

ねこのニャタロとすみれが多分主役

Javaでproperties読み込み!

2007-10-09 17:14:25 | いんちき技術者

こんばんわ
Javaでpropertiesの読み込みというネタがあります。

プロパティというのは
oya = NYATARO
みたく、左辺がキーで右辺が実体という感じで外部ファイル化させた物です。(細かい事は抜きで

Eclipseを利用時は
プロジェクト
 L propTestパッケージ
  L neko.properties

みたいな感じでneko.properties

配置します。内容はこんなん↓

oya = NYATARO
musume = SUMIRE

次にプロパティ読み込みクラスを作ります 今回はResourceBundleを使います

package propTest;

import java.util.ResourceBundle;

public class MyMain {
 
    public static void main(String[] args){
    //リソースバンドルを取得したいときには
    //こんな感じで書く。
    ResourceBundle rb = ResourceBundle.getBundle("propTest.neko");
  
    //propertiesファイルの左辺(キー)をgetStringメソッドの
    //引数にあたえると、右辺が取れます。
    String s1 = rb.getString("oya");
    String s2 = rb.getString("musume");
  
    System.out.println(s1 + "と" + s2);
  
    //日本語などのマルチバイトの文字は、そのままでは
    //文字化けになりますので…
    //コマンドプロンプトでnative2asciiコマンドを使います。
    //native2ascii neko2.properties neko2_ja.properties
    //という感じ。

    rb =ResourceBundle.getBundle("propTest.neko2_ja");

    String s3 = rb.getString("oya");
    String s4 = rb.getString("musume");
  
    System.out.println(s3 + "と" + s4);
   }

}

実行結果は

NYATAROとSUMIRE

と出るわけですが、propTest.neko2_jaを読むところはコメントに書いているように・・・

oya = ニャタロ
musume = すみれ


とプロパティに書いてあげても読んでくれないです。何かJavaとかで融通が中途半端に
利かないですね。

native2ascii neko2.properties neko2_ja.properties

とやると・・・

oya = u30cbu30e3u30bfu30ed
musume = u3059u307fu308c

と文字化け・・・違うな状態になります。

そうするとプログラム実行の結果は

ニャタロとすみれ

と表示できます。




最新の画像もっと見る