我正在使用 Univocity 库来解析 CSV,它工作得很好,但我需要一种方法来检测正在解析的文件的列数是否少于所需的列数
例如,如果我期望一个 3 列文件,其中列映射到 [H1,H2,H3],那么我收到一个如下所示的文件(没有标题)
V1_H1,V1_H2
V2_H1,V2_H2
使用时
record.getString("H3");
这会返回null,相反,我需要这个文件要么无法解析,要么我可以检查它是否错过了列并停止处理它
有什么办法可以实现这一点吗?
因此,由于我的主要问题是确保标题计数与 CSV 文件中提供的列数相同,并且由于我使用迭代器来迭代记录,因此我添加了如下检查:
CsvParser parser = new CsvParser(settings);
ResultIterator<Record, ParsingContext> iterator = parser.iterateRecords(inputStream).iterator();
if(iterator.getContext().parsedHeaders().length != settings.getHeaders().length){
throw new Exception("Invalid file");
}
它对我有用,不确定是否有更好的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)