java 小工具之--解析csv文件

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());
            }


        }

    }

posted @ 2018-01-02 10:23  典韦叔叔  阅读(377)  评论(0编辑  收藏  举报