Пишите столбцы вертикально, а не горизонтально

Я использую 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), а затем сопоставляю каждое значение с новым массивом данных, который я записываю в свой новый лист. Проблема в том, что я получаю данные в строке, а не в столбце: введите здесь описание изображения

Как записать мои данные column-by-column? Что не так в моем алгоритме?

Я ценю ваш ответ!


person user2051347    schedule 07.01.2014    source источник


Ответы (1)


Что здесь не так, очень просто: вы должны писать каждую запись как новую строку

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);
    }
}
person Festus Tamakloe    schedule 08.01.2014