- PR -

初期設定ファイル読み込み

1
投稿者投稿内容
kei
会議室デビュー日: 2003/04/23
投稿数: 11
投稿日時: 2003-04-23 11:01
はじめまして。
javaを勉強し始めてまだ一週間目です。
とりあえず本を三冊ほど読んでみた状態です。
設定ファイルから情報を読み取りたいのですが、思い通りになりません。
以下のコードで、Aのところではちゃんと意図した値が出力されるのですが、
Bのところでは「変数 kf は初期化されていない可能性があります。」と出ます。
何が悪いのか見当がつきません。

もしくは、もっと簡単に読み取る方法があるのでしょうか?
conf.iniは普通の
---------------
[system]
RootDir=c:\hoge\
TempDir=c:\temp\
---------------
という感じのファイルなのですが、

コード:
final String CONFPATH = application.getRealPath("/conf.ini");

String l;
String kf;
FileReader fa = new FileReader(CONFPATH);
BufferedReader fb = new BufferedReader(fa);
while(fb.ready())
{
l = fb.readLine();
if(l.substring(0,8).equals("RootDir="))
{
kf = l.substring(8,l.length()-1);
out.println(kf + "<br>"); ←A
break;
}

}
fb.close();
out.println(kf + "<br>"); ←B




[ メッセージ編集済み 編集者: kei 編集日時 2003-04-23 11:05 ]

[ メッセージ編集済み 編集者: kei 編集日時 2003-04-23 11:06 ]
Hush
会議室デビュー日: 2002/04/23
投稿数: 13
投稿日時: 2003-04-23 11:32
それは単純に、「初期化されていない可能性があります。」というコンパイルエラーの通りです。
whileブロック内が一度も処理されなかった場合やifないの判定がfalseがであった場合はString kfが初期化されませんよね?
そう言うことです。

それと単純に

property1=value1
property2=value2

といったフォーマットの設定ファイルを使いたいだけであれば、java.util.Propertiesを利用したほうが簡単だと思いますよ。
kei
会議室デビュー日: 2003/04/23
投稿数: 11
投稿日時: 2003-04-23 12:03
お返事ありがとうございます。
引用:

Hushさんの書き込み (2003-04-23 11:32) より:
whileブロック内が一度も処理されなかった場合やifないの判定がfalseがであった場合はString kfが初期化されませんよね?
そう言うことです。


なんか一気に晴れました。
今までずっとASPをやっていたせいか、javaの基本的なことを失念していました。
最初に一気にコンパイルされるんでした。
「この例ではデータが存在するから途中で値が入れられているはずなのに」とか
ずーっと悩んでしまってました。
String kf = "";
としてやるだけでうまくいきました。
引用:

それと単純に

property1=value1
property2=value2

といったフォーマットの設定ファイルを使いたいだけであれば、java.util.Propertiesを利用したほうが簡単だと思いますよ。


うーーーん、持っている本にはどれにも載ってないなぁ・・・。
API仕様書は膨大すぎて必要なものを探すのが大変ですね。
暇なときにちょくちょく眺めるしかなさそう。
逆引きできる本があればいいのですが・・・。
ともあれ、ありがとうございました。
java.util.Propertiesをこれからよく調べてみます。
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2003-04-26 18:20
引用:

うーーーん、持っている本にはどれにも載ってないなぁ・・・。
API仕様書は膨大すぎて必要なものを探すのが大変ですね。
暇なときにちょくちょく眺めるしかなさそう。
逆引きできる本があればいいのですが・・・。
ともあれ、ありがとうございました。
java.util.Propertiesをこれからよく調べてみます。



こんにちわ。

おそらく調べればわかると思いますが,javaにはなんか共通的に
使えそうだなというものはすでにコアAPIに存在していることが
多々あります。

僕も当初Propertiesを発見した際は、「うお、こんなものが・・」
という感じでした。

他にもソート関連、配列関連、動的クラスロード関連、等
たくさん便利なものがあるのでヒマな時はAPI仕様書をつらつら
眺めてみるのもいいものです。

ではでは。

1

スキルアップ/キャリアアップ(JOB@IT)