1

次の形式の txt ファイルから読み取ろうとしています。

Matthew:1000
Mark:100
Luke:10
John:0

プレーヤーの名前とスコア (int) を格納する Score オブジェクトがあります。これは Score のクラスです。

public class Score {

String playerName;
int playerScore;

public String toString(){
    StringBuilder builder = new StringBuilder();
        builder.append(playerName + ":" + playerScore);
    return builder.toString();
}

public void setName(String name){
    this.playerName = name;
}

public void setScore(int score){
    this.playerScore = score;
}

  }

プレーヤーの名前 (Matthew) とスコア (1000、整数として保存) を取得し、新しい Score オブジェクトを作成できるように、ファイルから読み取りたいと思います。これは私がこれまでに試したコードです:

    public ArrayList getLoadFile(String filename) {
      ArrayList<Score> scores = new ArrayList<Score>();
          BufferedReader bufferedReader = null;
    try{
        bufferedReader = new BufferedReader(new FileReader(filename));
        String fileLine;

        while((fileLine = bufferedReader.readLine()) != null){
            Score newScore = new Score();
            newScore.playerName = fileLine.split(":", 0)[0];
            newScore.playerScore = Integer.parseInt(fileLine.split(":", 0)[1]);
            scores.add(newScore);

          }
    } catch (FileNotFoundException e) {             
    } catch (IOException e) {               
    }

    return scores;
}

この関数は、保存されたスコアの文字列表現をロードし、スコアの ArrayList を作成してから、それらをテスト関数に返すことになっています。実行すると、次のように返されます: java.lang.ArrayIndexOutOfBoundsException: 1

どんな助けでも大歓迎です。

4

1 に答える 1