【发布时间】:2015-09-11 11:20:30
【问题描述】:
我正在尝试使用 openCSV 将 CSV 文件中的所有行转换为 java bean。我的文件中每行有 21 列,用管道符号 (|) 分隔。但是在 csv 文件中使用此 code.rows 获取空指针异常还包括空单元格。我无法弄清楚错误在哪里。任何人都可以帮助我
package com.alu.mdf.testsuite.sure;
import java.io.FileReader;
import java.util.List;
import com.opencsv.CSVParser;
import com.opencsv.CSVReader;
import com.opencsv.bean.ColumnPositionMappingStrategy;
import com.opencsv.bean.CsvToBean;
//import com.alu.mdf.test.common.Person;
public class CSVExplorer {
@SuppressWarnings({"rawtypes", "unchecked"})
public static void main(String[] args) throws Exception
{
CsvToBean csv = new CsvToBean();
String csvFilename = "TestCaseConfigurationFiles/application.csv";
//CSVReader csvReader = new CSVReader;
CSVParser csvParser=new CSVParser('|');
CSVReader reader = new CSVReader(new FileReader(csvFilename),1,csvParser);
//Set column mapping strategy
List list = csv.parse(setColumMapping(), reader);
for (Object object : list) {
SUREDataBean SUREDataBean = (SUREDataBean) object;
System.out.println(SUREDataBean);
}
}
@SuppressWarnings({"rawtypes", "unchecked"})
private static ColumnPositionMappingStrategy setColumMapping() throws Exception
{
ColumnPositionMappingStrategy strategy = new ColumnPositionMappingStrategy();
strategy.setType(SUREDataBean.class);
//strategy.createBean();
String[] columns = new String[] {"InputDataStartIdentifier","EntityType","Operation","IncludeId","IdValue","AssociatedResource","SearchQueryForGETRequest/ParametersForPUTRequest","PayloadLocation","TestCaseName","Description","userName","password","InputDataEndIdentifier","ValidationDataStart","ExpectedStatusCode","VerficationParameters","Method","class","Prerequisites","Group","ValidationDataEnd"};
System.out.println(columns.length);
strategy.setColumnMapping(columns);
return strategy;
}
}
这是错误堆栈跟踪:
线程“main”java.lang.RuntimeException 中的异常:解析 CSV 时出错!在 com.opencsv.bean.CsvToBean.parse(CsvToBean.java:95) 在 com.opencsv.bean.CsvToBean.parse(CsvToBean.java:75) 在 com.alu.mdf.testsuite.sure.CSVExplorer.main(CSVExplorer .java:28) 引起:com.opencsv.bean.CsvToBean.processLine(CsvToBean.java:123) 的 com.opencsv.bean.CsvToBean.processLine(CsvToBean.java:101) 的 java.lang.NullPointerException。 opencsv.bean.CsvToBean.parse(CsvToBean.java:91) ...
【问题讨论】: