我正在使用Apache Commons CSV读取CSV文件。该文件的最后一行包含有关文件本身的信息(生成日期和时间)。
True
因此,在解析文件时,我将其作为记录(显然)。 我想知道有没有办法摆脱它的解析,Apache Commons CSV是否有任何规定可以处理它。
答案 0 :(得分:0)
Apache Commons CSV提供了忽略标头(https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVFormat.html#withSkipHeaderRecord--)的功能,但没有提供忽略footer
的解决方案。但是您可以通过手动忽略最后一条记录来简单地获取除最后一条记录以外的所有记录。
答案 1 :(得分:0)
这是一个while循环,直到结束,您才知道何时到达终点。您有两种选择:
break
循环播放
到达(counter-1)行。line.trim().spit("|").length() > 1
或您的情况下
只要每行的记录数大于1。这将
确保您不会仅将逻辑应用于一行
恰好是您的最后一行,也就是页脚。示例取自Apache公用处并修改了样例
Reader in = new FileReader("path/to/file.csv");
Iterable<CSVRecord> records = CSVFormat.RFC4180.parse(in);
for (CSVRecord record : records) {
//all lines except the last will result greater than 1
if (record.size() > 1){
//do your work here
String columnOne = record.get(0);
String columnTwo = record.get(1);
}
}