-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 回答