Я использую supercsv CsvBeanWriter для записи значений в файл csv.
примерный класс:
public class Employee {
private String name;
private int empId;
List<String> phoneNumbers;
}
Вывод, который я получаю:
name,empId,phoneNumbers
vijay,1,"[123, 456]"
Обратите внимание, как List<String> phoneNumbers
записывается в []
Мой вопрос заключается в том, как мне прочитать его обратно в класс Employee (bean), используя supercsv.
Я пытался использовать CsvBeanReader
и CsvDozerBeanReader
, но не смог прочитать List<String>
.
Получаю исключение незаконных аргументов. Будем благодарны за любые указатели!
Полный код:
public class DozerBeanReader {
public static void main(String [] args){
ICsvDozerBeanReader beanReader = null;
try {
beanReader = new CsvDozerBeanReader(new FileReader("Employee.csv"),
CsvPreference.STANDARD_PREFERENCE);
String [] header = beanReader.getHeader(true); // ignore the header
Class<?> [] hintTypes = {String.class, Integer.class, List.class};
beanReader.configureBeanMapping(Employee.class, header, hintTypes);
Employee readEmp1 = beanReader.read(Employee.class);
readEmp1.toString();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}