Проблемы сохранения матрицы в CSV-файл - PullRequest
0 голосов
/ 08 июня 2011

Я пытаюсь сохранить целочисленную матрицу в CSV-файл. Мой код указан ниже.

try
    {
      FileWriter writer = new FileWriter("test.csv");          
         for(int i = 0; i < row; i++)
         {
            for (int j=0; j<(column-1); j++)
             {
                 writer.append(Matrix[i][j]);
                 writer.append(',');
             }
               writer.append(Matrix[i][j]);
               writer.append('\n');
               writer.flush();
         }
         writer.close();
      }        
    catch(Exception e)
    {
      e.printStackTrace();
    }

Однако Eclipse выдает следующее сообщение об ошибке:

Метод добавления (CharSequence) в типе Writer не является применимо для аргументов (int)

Как решить эту проблему? Благодаря.

Ответы [ 3 ]

6 голосов
/ 08 июня 2011

Измените ваши звонки на append(Matrix[i][j]) на append(String.valueOf(Matrix[i][j]) или append("" + Matrix[i][j]). Проблема (как указывается в сообщении об ошибке) состоит в том, что вы пытаетесь добавить целое число, но метод добавления принимает только CharSequence (то есть строку). Оба решения, которые я представляю, приводят целочисленный / числовой тип к строке.

1 голос
/ 08 июня 2011

Как уже упоминалось @ I82, альтернативой является использование write (для ,, чтобы избежать создания строки).Кроме того, вы используете j вне цикла for, поэтому вам необходимо объявить его и вне:

int j;
for (j=0; j<(column-1); j++)
{
    writer.append(Matrix[i][j]);
    writer.append(',');
}
writer.append(Matrix[i][j]);
0 голосов
/ 08 июня 2011

Другие ответы хороши, другой способ сделать это - использовать

writer.append(Integer.toString(Matrix[i][j]));

Также, как сказал @MByD, вы должны объявить j вне цикла, если вы используете его вне цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...