2017-02-26 100 views
0

我試圖獲取打印輸出並將其存儲到字符串數組中以便將值寫入CSV文件中。出現的問題是,當運行代碼時,從100行打印,只有最後一行得到存儲:CSVWriter只寫入Java中的最後一行

public void organize(String line) throws IOException { 
    CSVWriter writer = new CSVWriter(new FileWriter("out.csv"), '\t'); 

    String[] token = line.split(","); 
    String[] DependencyItems = token[1].split(" "); 
    List<String> entriesList; 
    String[] entries; 
    String row = ""; 

    for (int i = 0; i < DependencyItems.length; i++) { 
      row = token[0] + "," + DependencyItems[i] + "," + token[2] + "," + token[3] + "," + token[5]+ "," + token[6] 
      + "," + token[7]+ "," + token[8]+ "," + token[9] + "," + token[10] + "," + token[11] + "," + token[12] 
      + "," + token[13] + "," + token[14] + "," + token[15] + "," + token[16]+ "," + token[17] 
      + "," + token[18]+ "," + token[19]+ "," + token[20]+ "," + token[21] + "," + token[22] 
      + "," + token[23]+ "," + token[24]+ "," + token[25]+ "," + token[26]+ "," + token[27] 
      + "," + token[28]+ "," + token[29]; 
    } 
    System.out.println(row); 
    entriesList = Arrays.asList(row); 
    entries = entriesList.toArray(new String[0]); 
    writer.writeNext(entries); 
    writer.close(); 
} 

我做錯了什麼?

回答

0

row = <big long string>

你只是使用行的最後的值總是復位row那麼所有的循環之後的東西。如果你想使用所有的值,那麼循環後面的代碼應該在循環中?至少它看起來像這兩條線屬於循環。

System.out.println(row); 
entriesList = Arrays.asList(row); 

注意的是,如果row範圍僅限於只是在循環中,那麼這可能有助於確定這種類型的問題,因爲它不會是外循環有效。