Как добавить столбец в файл .csv с помощью apache-commons-csv - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь добавить столбец в файл csv. Итак, я получаю запись (здесь recordOut) и добавляю элемент в список.

Код

public <T> List<T> getListFromIterator(Iterator<T> iterator) { 
    Iterable<T> iterable = () -> iterator; 
    return StreamSupport .stream(iterable.spliterator(), false) .collect(Collectors.toList()); 
}

public void method() {
    // ... recordOut definition
    List<String> headerRecord = getListFromIterator(recordsOut.get(0).iterator());
    headerRecord.add(recordsOut.get(0).size() + 1, "Value");

    String filePath = file.getAbsolutePath();
    file.delete();

    CSVPrinter printer = new CSVPrinter(writer, Constants.CSV_FORMAT);
    printer.printRecords(recordsOut);
}

Ошибка

Исключение в потоке "main" java.lang.IndexOutOfBoundsException: Index: 69, Size: 68

Не допускается добавление столбца в список headerRecord? Спасибо за вашу помощь!

1 Ответ

1 голос
/ 07 ноября 2019

Не использовать индекс при добавлении

Изменить

headerRecord.add(recordsOut.get(0).size() + 1, "Value");

на

headerRecord.add("Value");
...