2011-06-07 72 views
0

我想將整數矩陣保存到csv文件。我的代碼如下所示。將矩陣保存到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提供了以下錯誤消息:在類型作家

方法的append(CharSequence的)不 適用於參數(INT)

如何解決這個問題?謝謝。

+1

樣式註釋 - 不要用最初的大寫字母命名實例變量(Matrix)。這就是你應該如何命名類。 – I82Much 2011-06-07 21:23:47

+0

此外,還有一些CSV實用程序可以幫助您避免編寫此類代碼。例如參見ostermillerutils(http://ostermiller.org/utils/CSV.html) – I82Much 2011-06-07 21:41:50

回答

6

將您的來電改爲append(Matrix[i][j])改爲append(String.valueOf(Matrix[i][j])append("" + Matrix[i][j])。問題(正如錯誤信息指出的那樣)是你試圖附加一個整數,但是append方法只接受一個CharSequence(即一個字符串)。我提出的兩種解決方案都強制整數/數字類型爲String。

1

由於@I82Much提到,另一種方法是使用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

其他的答案是好的,另一種方式來做到這一點是使用

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

也爲@ MByD表示,如果你在循環之外使用它,你必須在循環之外聲明j