2014-01-30 146 views
0

我有一個2d int數組。我希望它被寫入一個CSV文件。我用下面的代碼如何將數組寫入文件,並使用列分隔值

BufferedWriter writer = new BufferedWriter(new FileWriter("filecsv.csv")); 
for(int index11 = 0; index11 < a.length; index11++) { 
    for(int subIndex1 = 0; subIndex1 < 2; subIndex1++) { 
     writer.write(a[index11][subIndex1]); 
     System.out.print(","); 
    } 
    System.out.println(); 
} 

我的輸出應該像

1,2 
3,4 
5,6 

,但沒有被寫在我的CSV文件,並在控制檯窗口中沒有被打印出來。有人能告訴我我做錯了什麼嗎?

+0

發生了什麼?有什麼錯誤? –

+1

''writer.flush(); writer.close();'你的代碼可能有幫助嗎? – dan

+0

'writer.close()'不會自動調用'writer.flush()'? – csmckelvey

回答

0
try{  

    BufferedWriter writer = new BufferedWriter(new FileWriter("filecsv.csv")); 
      for(int index11 = 0; index11 < a.length; index11++) { 
       for(int subIndex1 = 0; subIndex1 < 2; subIndex1++){ 
        writer.write(String.valueOf(a[index11][subIndex1])); 
        if(subIndex1<2-1){ 
         writer.write(","); 

        } 
       } 
       writer.write("\n"); 
      } 
} 
    catch(IOException ex){ 
     ex.printStackTrace(); 
    } 
     writer.close(); 
+0

我試過上面的代碼..在Csv文件而不是數組內容中,「?」僅打印。但是當我在控制檯中打印相同的數組時,我能夠看到這些值。爲什麼如此?你能解釋一下嗎? – Praveen

+0

@Praveen當你嘗試向csv寫入一個'int'時,就會出現這個問題。將該int值轉換成字符串,然後寫入文件..查看上面更新後的代碼 –

+0

完美工作..吞噬了很多! – Praveen

0

你只是印刷的數組「」控制檯根據你的代碼是System.out.print (「」);。此外,我懷疑你應該做一個沖洗,並在完成內容寫作後,你應該關閉作家以及文件。雖然我還沒有嘗試過寫一個csv文件,但這些是寫入文件和保存文件的常用步驟。

1

三個問題:

  1. 要打印的號碼的文件,但逗號和換行符到控制檯(System.out)。
  2. 您在每行的結尾處打印另一個逗號。
  3. 您需要在最後加上writer.close(),否則這些字符就會坐在緩衝區中而根本不會被寫入。
相關問題