要解决Apache Commons CSV不会忽略缺少的列的问题,可以使用CSVFormat类的withIgnoreSurroundingSpaces方法来忽略列之间的空格,以及使用withSkipHeaderRecord方法来跳过CSV文件的标题行。
以下是一个示例代码:
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import java.io.FileReader;
import java.io.IOException;
public class CSVReaderExample {
public static void main(String[] args) {
try (FileReader reader = new FileReader("data.csv");
CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT
.withIgnoreSurroundingSpaces()
.withSkipHeaderRecord())) {
for (CSVRecord csvRecord : csvParser) {
String column1 = csvRecord.get(0);
String column2 = csvRecord.get(1);
// 其他列...
System.out.println("Column 1: " + column1);
System.out.println("Column 2: " + column2);
// 打印其他列...
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们使用CSVFormat.DEFAULT来创建CSVFormat对象,并使用withIgnoreSurroundingSpaces方法忽略列之间的空格。然后,使用withSkipHeaderRecord方法跳过CSV文件的标题行。
在for循环中,我们遍历CSVParser对象的CSVRecord对象,并使用get方法获取每个列的值。你可以根据需要获取其他列的值。
请确保将上述示例中的"data.csv"替换为你实际的CSV文件路径。