Java 使用opencsv解析CSV到Bean

Java 使用opencsv解析CSV到Bean,java,csv,opencsv,Java,Csv,Opencsv,我有以下CSV文本: 标题:生成:982398738249 2012-01-10 04:10:21用户名;用户ID;用户描述;总空间MB;拉穆·普拉萨德;MN012;阿约德拉斯塔;11214;谢亚姆·普拉萨德;MN013;矮星;4114; 我正在使用Open CSV解析: Reader reader = new InputStreamReader(is); CSVReader csv = new CSVReader(reader,','); CsvToBean<FromBackup>

我有以下CSV文本:

标题:生成:982398738249 2012-01-10 04:10:21用户名;用户ID;用户描述;总空间MB;拉穆·普拉萨德;MN012;阿约德拉斯塔;11214;谢亚姆·普拉萨德;MN013;矮星;4114;

我正在使用Open CSV解析:

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());
这是给空的。i、 e fnb.getUsername将NULL作为输出。 你能帮我看看我做的是否正确吗。我正在从web链接接收CSV文本。尝试在web上查找,但无法成功

更新

现在我做了以下几点:

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" }); 
结果:在第一个字段中获得CSV行,即用户名=ram_prasad;MN012;阿约德拉斯塔;11214但UserID、UserDescription和TotalSpaceHosted仍然为NULL


当我放分号时,它给出解析错误

您的CSV在excel中有效吗?它给出空值。您能详细说明一下吗?CSV作为文本接收。在excel中,它在单个列中显示整个CSV。Null表示csv,但数据使用分号,代码使用逗号。哦,请学习4-空格缩进格式,这样我们可以阅读您的代码。无法理解3-空格缩进。尝试了15分钟,但堆栈溢出未被接受:。