I have following text in CSV:
# Title: Chilling# Generated: 982398738249 (2012-01-10 04:10:21) # User name;User ID;User description;Total Space (MB); ram_prasad;MN012;ayodh rastar;11214;shyam_prasad;MN013;dwark rastar;4114;
I am using Open CSV to parse:
Reader reader = new InputStreamReader(is);
CSVReader csv = new CSVReader(reader,',');
CsvToBean<FromBackup> csvb = new CsvToBean<FromBackup>();
Map<String, String> columnMapping = new HashMap<String, String>();
columnMapping.put("User name ","userName"); //1st is column recieved in CSV and second is bean name private String userName;
columnMapping.put("User ID","userID");
columnMapping.put("User description","userDescription");
columnMapping.put("Total Space (MB)","totalSpaceHosted");
HeaderColumnNameTranslateMappingStrategy<FromBackup> strategy = new HeaderColumnNameTranslateMappingStrategy<FromBackup>();
strategy.setType(FromBackup.class);
strategy.setColumnMapping(columnMapping);
List<FromBackup> list = csvb.parse(strategy, csv);
System.out.println(""+list);
FromBackupfnb = (FromBackup)list.get(0);
System.out.println("username "+fnb.getUserName());
It is giving Null. i.e fnb.getUsername gives NULL as output. Could you please help in finding whether i am doing correct. I am receiving CSV text from a web link. Tried to found on web but unable to succeed.
An Update
Now i did following:
CSVReader csv = new CSVReader(reader,','); //Comma instead of semi colon
ColumnPositionMappingStrategy<FromBackup> strategy = new ColumnPositionMappingStrategy<FromBackup>(); strategy.setType(FromBackup.class);
strategy.setColumnMapping(new String [] { "userName", "User ID", "userDescription","totalSpaceHosted" });
Result: Got CSV line in first field i.e username = ram_prasad;MN012;ayodh rastar;11214 but UserID, UserDescription, TotalSpaceHosted is still NULL.
When i put semi colon it gives parsing error