gpt4 book ai didi

java - 使用 jackson-dataformat-csv 获取 csv header

转载 作者:行者123 更新时间:2023-12-02 05:02:04 30 4
gpt4 key购买 nike

我使用jackson-dataformat-csv库。我想解析 CSV 文件。我有这个代码:

 CsvMapper csvMapper = new CsvMapper();
CsvSchema csvSchema = csvMapper.typedSchemaFor(Map.class).withHeader();
List<Map<String, String>> csvRows;
try {
MappingIterator<Map<String, String>> it = csvMapper.readerFor(Map.class)
.with(csvSchema.withColumnSeparator(';'))
.readValues(file.getInputStream());
csvRows = it.readAll();
} catch (Exception ex) {
log.error("Unable to read csv document: ", ex);
}

我想从此文件中获取列名称。但我不明白如何制作它。我尝试:

csvSchema._columns

但是,它是空对象。我也这样做:

csvSchema.column(0)

我收到错误:

Method threw 'java.lang.ArrayIndexOutOfBoundsException' exception.

显然,columns 对象是空的。为什么?如何从 CSV 获取列名称数组?

最佳答案

如果您需要列名称,请将它们作为 MappingIterator 返回的 Map 中的键:

CsvMapper csvMapper = new CsvMapper();
CsvSchema csvSchema = csvMapper.typedSchemaFor(Map.class).withHeader();

MappingIterator<Map<String, String>> it = csvMapper.readerFor(Map.class)
.with(csvSchema.withColumnSeparator(','))
.readValues(csvFile);

System.out.println("Column names: " + it.next().keySet());

关于java - 使用 jackson-dataformat-csv 获取 csv header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55185146/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com