Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ファイルからのデータの読み込みについて


a,b,c,d
のような行が5行ある、テキストファイルから、以下のようにしてデータを読み込み、コンマ区切りでデータを分けようとしています。
        for(int i=0;i<5;i++){
            while((str=br.readLine())!=null){
                System.out.println(str);
                String[] str1=str.split(",");

                id[i]=Integer.parseInt(str1[0]);
                name[i]=str1[1];
                num[i]=Integer.parseInt(str1[2]);
                price[i]=Integer.parseInt(str1[3]);

                System.out.print(id[i]);
                System.out.print(name[i]);
                System.out.print(num[i]);
                System.out.println(price[i]);

            }
        }
確認のため、画面に値を表示するようにしています。

このforループの中では正しく画面表示されるのですが、このループを抜けた後、もう一度以下のように、for文を用いて画面表示させると、
        System.out.println();
        for(int i=0;i<5;i++){
        System.out.print(id[i]);
        System.out.print(name[i]);
        System.out.print(num[i]);
        System.out.println(price[i]);
        }

"5行目のデータが表示される"
0null00
0null00
0null00
0null00

このようになってしまいます。
何故なのでしょうか?

1

回答

174

閲覧

1件の回答

評価

0

まずは自分で調べてみたことを、書いてみよう。

その断片的なソースでは、正確な原因は誰にも分からない。
ソースを見てもらいたいなら、
1.そのまま実行できること
2.現象が再現できる最低限のコードであること
を念頭に置くことだ。

回答する

ログインしていません。

ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 アカウントをお持ちでない方は会員登録を行ってください。

ユーザ名匿名