我正在使用最新版本的 common-csv 库,例如在我的pom.xml中,我有这个依赖项:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.7</version>
</dependency>
该库用于在 Java 应用程序中编写简单的 CSV 文件。在特定用例中,可以复制 csv 文件的列名标题。我发现 CSVFormat 类的一个有趣属性在这种情况下一定很有用,但是在下面描述的每个解决方案中,程序都会因错误而终止,例如:
Exception in thread "main" java.lang.IllegalArgumentException:
The header contains a duplicate entry: 'VV' in [CC, VV, VV]
at org.apache.commons.csv.CSVFormat.validate(CSVFormat.java:1676)
at org.apache.commons.csv.CSVFormat.<init>(CSVFormat.java:793)
at org.apache.commons.csv.CSVFormat.withHeader(CSVFormat.java:1986)
编写的代码是:
public static void main(String[] args){
CSVFormat formatCsv = CSVFormat.DEFAULT.withAllowDuplicateHeaderNames()
.withHeader("CC","VV","VV");
System.out.println(formatCsv);
}
我已经尝试了4种情况:
CSVFormat formatCsv = CSVFormat.DEFAULT.withAllowDuplicateHeaderNames()
.withHeader(headers);
CSVFormat formatCsv = CSVFormat.DEFAULT.withAllowDuplicateHeaderNames(true)
.withHeader(headers);
CSVFormat formatCsv = CSVFormat.DEFAULT.withHeader(headers)
.withAllowDuplicateHeaderNames();
CSVFormat formatCsv = CSVFormat.DEFAULT.withHeader(headers)
.withAllowDuplicateHeaderNames(true);
该属性是否存在错误withAllowDuplicateHeaderNames
?重写库的代码源来改变CSVFormat.class的验证方法是非常困难的