java 使用CSVRecord解析csv文件,跳过格式错误的行
时间: 2024-01-10 08:02:10 浏览: 143
在使用 `CSVRecord` 解析 CSV 文件时,如果遇到格式错误的行,可以通过 `CSVFormat` 对象的 `withIgnoreSurroundingSpaces()` 方法来忽略字段周围的空格,以避免一些常见的格式错误。例如:
```java
Reader in = new FileReader("file.csv");
Iterable<CSVRecord> records = CSVFormat.DEFAULT
.withIgnoreSurroundingSpaces() // 忽略字段周围的空格
.parse(in);
for (CSVRecord record : records) {
// 处理每一行记录
}
```
如果遇到其他格式错误(如缺失字段或多余字段),则可以在循环中使用 `try-catch` 块来捕获 `CSVFormatException` 异常,然后跳过该行记录。例如:
```java
Reader in = new FileReader("file.csv");
Iterable<CSVRecord> records = CSVFormat.DEFAULT.parse(in);
for (CSVRecord record : records) {
try {
// 处理每一行记录
} catch (CSVFormatException e) {
// 忽略格式错误的行
continue;
}
}
```
在上面的例子中,如果处理某一行记录时出现格式错误,那么就会捕获 `CSVFormatException` 异常,并通过 `continue` 关键字跳过该行记录。
阅读全文