【发布时间】:2019-05-07 15:58:02
【问题描述】:
我正在尝试使用 Apache Commons CSV 将具有某些标头的 CSV 文件读入 Java 对象。但是,当我运行代码时,我得到以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: Mapping for Color not found, expected one of [Color, Name, Price, House Cost, Rent, 1 House, 2 Houses, 3 Houses, 4 Houses, Hotel, Mortgage]
at org.apache.commons.csv.CSVRecord.get(CSVRecord.java:102)
at GameBoard.<init>(GameBoard.java:25)
at Game.main(Game.java:3)
有人可以解释异常的来源吗?在我看来,Apache Commons 不知何故与我的输入不匹配。我有什么问题还是有其他问题?这是我的代码 sn-p:
Reader in;
Iterable<CSVRecord> records = null;
try {
in = new FileReader(new File(Objects.requireNonNull(getClass().getClassLoader().getResource("Properties.csv")).getFile()));
records = CSVFormat.EXCEL.withFirstRecordAsHeader().parse(in);
} catch (IOException | NullPointerException e) {
e.printStackTrace();
System.exit(1);
}
for (CSVRecord record :
records) {
spaces.add(new Property(
record.get("Color"),
record.get("Name"),
Integer.parseInt(record.get("Price")),
这是我的 csv 标头(抱歉,一个被切断了,但这不是重点):
谢谢!
【问题讨论】:
-
我想知道它是否与这个问题有关:stackoverflow.com/questions/10277348/… 但如果是这样,我不知道如何解决它。
-
看起来像一个奇怪的不匹配,它与列表中的标题不匹配。可能是 CSV 文件中的一些特殊字符或尾随空格,您能否将 csv 文件显示为文本,即 csv 文件的内容。
标签: java csv apache-commons apache-commons-csv