-1

statsArray であるクラスの 10 個のインスタンスを含む配列を作成し、各インスタンス内にデータを含む別の配列を作成します。これをテキストファイルに書き込んでデータを保存したいのですが、エラーが発生し続けます。numbersarray は、statsArray の数値をコピーしようとしている文字列の配列です。

private void saveData(){
    try{


    for(int i = 0;i < statsArray.length;i++){
        numbersArray[i] = "";
        for(int j = 0;j < statsArray[i].getValues()[j];j++){
        numbersArray[i] += statsArray[i].getValues()[j];
        }   

    }
    BufferedWriter bw = new BufferedWriter(new FileWriter("SavedData.txt"));
    for(int i = 0;i < numbersArray.length;i++){
       // for(int j = 0; j < statsArray[i].getValues()[j];j++) { 
        bw.write(numbersArray[i] + " ");
        bw.newLine();
        //}
    }
    bw.close();
4

3 に答える 3

3

このアプローチはより良いでしょうか?

statsArray 内の MyObject の各インスタンスをループしてから、インスタンスの numberArray 内の各文字列をループし、それをバッファされたライターに追加します。

BufferedWriter bw = new BufferedWriter(new FileWriter("SavedData.txt"));
for (MyObject mo : statsArray)
{
    for (String value : mo.getValues()) 
    {
        bw.write(value + " ");
        bw.newLine();
    }
}
于 2012-10-27T19:38:55.280 に答える
1
for(int j = 0;j < statsArray[i].getValues()[j];j++){
    numbersArray[i] += statsArray[i].getValues()[j];
}

statsArray[i].getValues()[j]範囲外になる可能性があります。

次のように書く必要があります。

int[] values = statsArray[i].getValues();
for(int j=0; j<values.length; j++) {
于 2012-10-27T19:44:38.650 に答える
0

どこにnumbersArrayを割り当てますか?あなたがしなければならない

numbersArray= new String[statsArray.length] 

最初のforループの前。

于 2012-10-27T19:44:07.777 に答える