使用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列之后什么也没读?
答案 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;
}