java - 如何使用 apache-commons-csv 在 .csv 文件中添加一列
问题描述
我尝试在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);
}
错误
线程“主”java.lang.IndexOutOfBoundsException 中的异常:索引:69,大小:68
不允许在列表中添加列headerRecord
?谢谢您的帮助!
解决方案
添加时不要使用索引
改变
headerRecord.add(recordsOut.get(0).size() + 1, "Value");
至
headerRecord.add("Value");
推荐阅读
- robotframework - 如何将字典创建包含在机器人框架中的运行关键字中
- javascript - 无法读取科尔多瓦中的属性“applicationDirectory”
- r - R传播ddply Fivenum结果
- python - Pydantic - 动态创建具有多个基类的模型?
- php - jquery 运行良好,但为什么没有数据发布在 db 中?
- laravel - 如何在两列上设置唯一的验证规则
- python - cassandra cqlengine中的varchar列类型
- java - java -cp 选项似乎在 Java 14 中不起作用(已启用预览版)
- asp.net-core - Ef core 用 null 移除子元素
- android - Android ActionBar 高度使用自定义布局