こんばんわ
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
と文字化け・・・違うな状態になります。
そうするとプログラム実行の結果は
ニャタロとすみれ
と表示できます。