使用org.apache.commons.csv.CSVParser
我有一个奇怪的行为。
我正在尝试逐行读取由 分隔的 csv 文件,;
但我的解析器由于未知原因正在跳过行。
这是我的代码:
public static void main(String[] args) {
try (
File file = new File("myFile.csv");
Reader reader = new BufferedReader(new FileReader(file));
CSVParser parser = new CSVParser(reader, CSVFormat.DEFAULT.withDelimiter(';'));
) {
if (!parser.iterator().hasNext()) {
throw new RuntimeException("The file is empty.");
}
while(parser.hasNext()) { //<----- This skip a line!
console.log(parser.iterator().next().get(0).trim());
}
}
}
所以我的控制台看起来像:
line2
line4
line6
line8
line10
line12
ETC...
所以我的问题是 CSVParser 正在跳过一行parser.hasNext()
,它不应该。
我的代码错了吗?我很确定如果我用 ArrayList 替换解析器,迭代器会按预期工作......这是一个已知的错误吗?如果是的话,你们能指出解决方法或更好的图书馆吗?