使用 Java 导入 CSV 文件时出现“位置 1 缺少值定界符”错误。
这是我的代码:
protected int getFieldCount()
{
return 3;
}
protected void importRecord(List<String> record, int lineNumber) {
String rawScore = record.get(ELEMENT_RAW_SCORE).trim();
String contextScore = record.get(ELEMENT_CONTEXT).trim();
String subtest = record.get(ELEMENT_SUBTEST).trim();
}
如果我的 csv 文件如下所示:
95,Performance Scale,codes,
ME,Performance Scale,Numbers,test
NM,Scale,Strategies,
当我在其中一行中留下额外的字符(因为第 2 行中有“test”)时,我收到错误,否则导入运行正常。即使我只添加到其中一行,每一行都会显示错误。
getFieldCount()
方法返回 int 源文件中每条记录中应出现的预期字段数,如果未严格执行字段数,则返回非正值。
像 split("\t")
这样的字符串方法不起作用,因为它不是导致此问题的制表符分隔符。即使我严格强制执行,代码在第 3 栏之后也不会停止阅读。我怎样才能告诉它在第 3 列之后不读取任何内容?
最佳答案
不确定您如何读取 csv 数据,但您的 csv 有 4 列,而不是 3 列:
95,Performance Scale,codes,
ME,Performance Scale,Numbers,test
NM,Scale,Strategies,
第 1 行和第 3 行的第四列为空值,但这算作一列。
所以也许尝试为 fieldcount 返回 4:
protected int getFieldCount()
{
return 4;
}
关于java - 位置处缺少值分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070456/