2014-01-07 100 views
1

我使用opencsv爲獲取值出多個CSV張寫他們到一個CSV表。這是我在做什麼:寫專欄垂直而非水平

//reading all entries in a huge list 
for (int j = 0; j < (fileList.size() - 740); j++) { 
    String csvFile = "C:\\" + fileList.get(j); 
    reader = new CSVReader(new FileReader(csvFile), ';'); 
    hugeList = reader.readAll();    

    List<String[]> data = new ArrayList<String[]>(); 
    List<String> tmp= new ArrayList<String>(); 
    for(int m = 0; m < hugeList.size(); m++) { 
       String[] values = hugeList.get(m); 
       tmp.add(values[0]);  
     } 
    data.add(tmp.toArray(new String[0])); 


    writer.writeAll(data); 

} 

正如你可以看到我收到的文件及其內容寫入到一個列表(hugeList),然後映射該我寫了我的新的一個新的數據陣列的每個值片。問題是我得到的數據連續而不是列: enter image description here

如何寫我的數據column-by-column?我的算法出了什麼問題?

我感謝您的回覆!

回答

2

這裏有什麼問題很簡單:你必須寫一個每個條目作爲新的生產線

E.g.: writer.writeNext(data); 

更多細節

我在列結果方法見下文實例

for (int j = 0; j < fileList.size(); j++) { 
    String csvFile = readPath + fileList.get(j); 
    System.out.println("Read: " + csvFile); 
    reader = new CSVReader(new FileReader(csvFile), ';'); 
    hugeList = reader.readAll(); 

    String[] data = new String[1]; 
    for (int m = 0; m < hugeList.size(); m++) { 
     String[] values = hugeList.get(m); 
     data[0] = values[0]; 
     writer.writeNext(data); 
    } 
}