【问题标题】:OpenCSV Parse CSV with header to ListOpenCSV 将带有标题的 CSV 解析为列表
【发布时间】:2015-05-26 19:01:05
【问题描述】:

我正在尝试与一些使用 opencsv 3.3 的用户解析一个简单的 csv 文件并将其放入 bean 中,但在运行代码时遇到类未找到异常。下面是我用于读取对象的 Person.class 文件。

public class Person {
    private String firstname;
    private String lastname;
    private String email;
    private String type;

    /*public Person () {}
    public Person (String firstname, String lastname, String email, String type) {
        this.firstname = firstname;
        this.lastname = lastname;
        this.email = email;
        this.type = type;
    }*/

    //set all the variables for the person
    //set the first name
    public String getFirstName() {
        return firstname;
    }
    public void setFirstName(String firstname) {
        this.firstname = firstname;
    }

    //set the last name
    public String getLastName() {
        return lastname;
    }
    public void setLastName (String lastname) {
        this.lastname = lastname;
    }

    //set the email address of the user
    public String setEmail() {
        return email;
    }
    public void getEmail(String email) {
        this.email = email;
    }

    //set the type for the user
    public String setType() {
        return type;
    }
    public void getType (String type) {
        this.type = type;
    }

    @Override
    public String toString() {
        return "User [firstname=" + firstname + ", lastname=" + lastname + ", email=" + email + ", type=" + type + "]";
    }
}

读取csv的代码如下。

String filename = "D:/Projects/deploy/resources/sample.csv";
try {          
    HeaderColumnNameTranslateMappingStrategy<Person> strategy = new HeaderColumnNameTranslateMappingStrategy<Person>();
    strategy.setType(Person.class);
    Map<String, String> mapping = new HashMap<String, String>();
    mapping.put("firstname", "firstname");
    mapping.put("lastname", "lastname");
    mapping.put("email", "email");
    mapping.put("type", "type");
    strategy.setColumnMapping(mapping);
    System.out.println("past the mapping");

    CSVReader reader = new CSVReader(new FileReader(filename));
    System.out.println("past the reader");

    CsvToBean<Person> csvbean = new CsvToBean<Person>();
    System.out.println("past the csvtobean");

    List<Person> csvusers = csvbean.parse(strategy, reader);
    System.out.println(csvusers);


} catch (Exception e) {
    System.out.println("there was an exception in the main program:" + e);
}

当我运行它时,它说没有找到用于标头映射的类。你知道这是 Person.class 还是映射的问题?您能提供的任何帮助将不胜感激。

【问题讨论】:

    标签: java parse-error opencsv


    【解决方案1】:

    如果有人遇到这种情况,上面的代码可以正常工作。我的类路径中没有 opencsv 所需的 apache commons lang3。一旦我添加了它,一切都开始正常工作了。

    谢谢 尼克

    【讨论】:

      猜你喜欢
      • 2017-05-25
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 2013-04-13
      • 2011-01-06
      相关资源
      最近更新 更多