使用 opencsv 将 csv 文件解析为类 getter 方法



我正在尝试使用 opencsv 传递一个 csv 文件。csv 文件有三列 (,)。如何使用各自的值将每一行解析为我的数组列表?请参阅下面的代码。

public class Customer { 
    private String accNum;  
    private String fName;   
    private String lName;   
    public Customer(String accNum, String fName, String lName) {        
    this.accNum = accNum;
    this.fName = fName;
    this.lName = lName;
     }
    //getters & setters
    ...
}
public class CustomerList{
public void getCustList(File file) throws IOException {     
    List <Customer> custList = new ArrayList <Customer>();
    CSVReader reader = new CSVReader (new FileReader (file));
    String [] header = reader.readNext();       
    List<String[]> cList = reader.readAll();
    for (int i =0 ; i < cList.size(); i++)
    {
        String[] line = cList.get(i); //not sure how to do this
        for (String list: line)
        {
            custList.add( new Customer (list));// constructor takes three arguments
        }
    }
}

有点像JDBC ResultSet。

List <Customer> custList = new ArrayList <Customer>();
CSVReader reader = new CSVReader (new FileReader (file));
String[] header = reader.readNext();
if (header == null)
{
    throw new RuntimeException("No header");
}
String[] row;
while ((row = reader.readNext()) != null)
{
    if (row.length != 3) {
        throw new RuntimeException("Unexpected number of entries: " + row.length);
    }
    custList.add(new Customer(row[0], row[1], row[2]));
}

我会将 for 循环修改为这样的内容

for(int i = 0; i < cList.size(); i++) {
    String[] line = cList.get(i);
    custList.add(new Customer(line[0], line[1], line[2]));
}

当然,假设列的顺序是accNum,fName,lName。

相关内容

  • 没有找到相关文章

最新更新