[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] java.util.Properties.load()でShiftJISを読みたい
始めまして、最近Javaの勉強を始めた者です.
現在開発中のソフトで、テキストファイルから設定を読込みたい
と思っていますが、java.util.Properties#load(InputStream) では
ShiftJISで書かれたファイルを読み込むと文字バケしてしまいます.
対策 1) native2ascii.exe で変換する
対策 2) InputStream を extends したクラスを自作する
以外になにか良いやり方はないでしょうか?
開発環境
OS/2 Warp4 (+FX000505)
JDK 1.1.7
動作確認
OS/2 Warp4 (+FX000505)
JDK 1.1.7 & JDK 1.1.6
以下、ソースと実行結果です.
---- PropertyTest.java ----
import java.io.*;
import java.util.Properties;
class PropertyTest {
public static void main(String args[]){
Properties prop = new Properties();
try {
FileInputStream in = new FileInputStream(args[0]);
prop.load(in);
in.close();
prop.list(System.out);
}catch(IOException e){
return;
}
}
}
---- 設定ファイル(Unicode) properties.uc ----
place=\u718a\u672c
periods=\u660e\u6cbb,M,1868/01/01 \u5927\u6b63,T,1912/07/30
\u662d\u548c,S,1926/12/25 \u5e73\u6210,H,1989/01/08
---- 設定ファイル(ShiftJIS) properties.jis ----
place=熊本
periods=明治,M,1868/01/01 大正,T,1912/07/30 昭和,S,1926/12/25 平成
,H,1989/01/08
---- 実行結果 ----
[G:]java PropertyTest properties.jis
-- listing properties --
periods=????,M,1868/01/01 ????,T,1912/07/30 ?...
place=?F?{
[G:]java PropertyTest properties.uc
-- listing properties --
periods=明治,M,1868/01/01 大正,T,1912/07/30 昭和,S,...
place=熊本
以上、よろしくお願いします.
竹内 剛 (gori@xxxxxxxxxx)