2017-02-26 3 views
0

CSVファイルに値を書き込むために、印刷出力を取得して文字列配列に格納しようとしています。私が間違っているのは何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(); 
} 

:起動した問題は、コードを実行すると、100行が印刷されたから、最後の行だけが格納されますということですか?

答えて

0

row = <big long string>

あなたはいつもちょうど行の最後の値を使用している、ループ後のもののすべてをrowをリセットしています。すべての値を使用したい場合、おそらくループの後のコードがループ内にあるはずですか?少なくとも、これらの2行はループに属するように見えます。 rowの範囲は単なるループ内に制限された場合、これは、ループの外に有効ではないとしてこの種の問題を識別するのに役立つ可能性があること

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

は注意してください。

関連する問題