2014-01-07 73 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); 
    } 
}