次の形式の 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
どんな助けでも大歓迎です。