import com.opencsv.CSVReader;
//解析CSV成json格式
public String parseFile(String file_path){
FileInputStream in=null;
CSVReader reader=null;
InputStreamReader inReader=null;
try {
String question=null;
in=new FileInputStream(sb);
inReader= new InputStreamReader(in, "GBK");
reader= new CSVReader(inReader);
List<String[]> list= reader.readAll();
List<MpmsVoiceContent> list5 = new ArrayList<MpmsVoiceContent>(); //解析成相应的对象
if(list.size()>201){
//设置文件内容行数
question =FileUtil.FALSE4;
return question;
} //接下来就是各种格式判断
if(list!=null&&list.size()>1){
for(int j=1;j<list.size();j++){
MpmsVoiceContent e = new MpmsVoiceContent();
int length =list.get(j).length;
if( length==1){
if(!StringUtils.isEmpty(list.get(j)[0].trim())){
question =FileUtil.FALSE2;
return question;
}
else{
question =FileUtil.FALSE1;
return question;
}
}
else if(length==2){
if(StringUtils.isEmpty(list.get(j)[0].trim())){
question =FileUtil.FALSE1;
return question;
}
if(!StringUtils.isEmpty(list.get(j)[0].trim()) && list.get(j)[0].trim().length()>400){
question =FileUtil.FALSE6;
return question;
}
if(!StringUtils.isEmpty(list.get(j)[0].trim())&&StringUtils.isEmpty(list.get(j)[1].trim())){
question =FileUtil.FALSE2;
return question;
}
if(!StringUtils.isEmpty(list.get(j)[0].trim()) && list.get(j)[1].trim().length()>400){
question =FileUtil.FALSE6;
return question;
}
e.setQuestion(list.get(j)[0].trim());
e.setAnswer1(list.get(j)[1].trim());
}
else if(length==3){
if(StringUtils.isEmpty(list.get(j)[0].trim())){
question =FileUtil.FALSE1;
return question;
}
if(!StringUtils.isEmpty(list.get(j)[0].trim()) && list.get(j)[0].trim().length()>400){
question =FileUtil.FALSE6;
return question;
}
if(!StringUtils.isEmpty(list.get(j)[0].trim())&&StringUtils.isEmpty(list.get(j)[1].trim())&&StringUtils.isEmpty(list.get(j)[2].trim())){
question =FileUtil.FALSE2;
return question;
}
if(!StringUtils.isEmpty(list.get(j)[0].trim())&&(list.get(j)[1].trim().length()>400 || list.get(j)[2].trim().length()>400)){
question =FileUtil.FALSE6;
return question;
}
e.setQuestion(list.get(j)[0].trim());
if(!StringUtils.isEmpty(list.get(j)[1].trim())){
e.setAnswer1(list.get(j)[1].trim());
}
if(!StringUtils.isEmpty(list.get(j)[2].trim())){
e.setAnswer2(list.get(j)[2].trim());
}
}
else if(length==4) {
if(StringUtils.isEmpty(list.get(j)[0].trim())){
question =FileUtil.FALSE1;
return question;
}
if(list.get(j)[0].trim().length()>400){
question =FileUtil.FALSE6;
return question;
}
if(!StringUtils.isEmpty(list.get(j)[0].trim())&&StringUtils.isEmpty(list.get(j)[1].trim())&&StringUtils.isEmpty(list.get(j)[2].trim())&&StringUtils.isEmpty(list.get(j)[3].trim())){
question =FileUtil.FALSE2;
return question;
}
if(!StringUtils.isEmpty(list.get(j)[0].trim())&&(list.get(j)[1].trim().length()>400 || list.get(j)[2].trim().length()>400 || list.get(j)[3].trim().length()>400)){
question =FileUtil.FALSE6;
return question;
}
e.setQuestion(list.get(j)[0].trim());
if(!StringUtils.isEmpty(list.get(j)[1].trim())){
e.setAnswer1(list.get(j)[1].trim());
}
if(!StringUtils.isEmpty(list.get(j)[2].trim())){
e.setAnswer2(list.get(j)[2].trim());
}
if(!StringUtils.isEmpty(list.get(j)[3].trim())){
e.setAnswer3(list.get(j)[3].trim());
}
}else{
question=FileUtil.FALSE5;
return question;
}
list5.add(e);
} //解析成jsonString
JSONArray jsonarray = JSONArray.fromObject(list5);
return jsonarray.toString();
}else{
question=FileUtil.FALSE0;
return question;
}
}catch (Exception e) {
e.printStackTrace();
mpmsLogService.insertLogservice("Onekeymport",(short)1,"voice","parse Excel exception");
LOGGER.error(e.getMessage());
return null;
}finally {
try {
if (in != null) {
in.close();
}
if (inReader != null) {
inReader.close();
}
if (reader != null) {
reader.close();
}
}catch (Exception e){
e.printStackTrace();
LOGGER.error(e.getMessage());
}
}
}