位置缺少定界符

时间:2018-06-27 19:53:51

标签: java csv delimiter

使用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,

当第二行中有“ test”时,我在其中一行中保留了多余的字符时,我得到了错误,否则导入运行正常。即使我仅添加到其中一行,也会在每一行显示错误。

getFieldCount()方法返回int源文件中每个记录中应该存在的预期字段数,如果未严格执行字段数,则返回非正值。

split("\t")这样的字符串方法不起作用,因为它不是导致此问题的制表符分隔符。即使严格执行该代码,该代码也不会停止在第3列之后的读取。我怎样才能告诉它在第3列之后什么也没读?

1 个答案:

答案 0 :(得分:0)

不确定如何读取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;
}