1

我的代码是

        BufferedReader fileReader = new BufferedReader(new FileReader(strFileName));

        while ((strLine = fileReader.readLine()) != null) {
            // [2011.06.28] based on OAP's mail, now ignore "quotations"
            strLine = strLine.replace("\"", "");
            int j = 0;
            String componentID = null;
            String analyteResult = null;
            lineNumber++;
            //break comma separated line using ","
            st = new StringTokenizer(strLine, ",");
            while (st.hasMoreTokens()) {                   
                //st.nextToken();
                String value=st.nextToken();
                if(tokenNumber==1)
                {
                    if(lineNumber==1){
                        batchNo=value;
                    }
                    else if(lineNumber==2){
                        instrumentNo=value;
                    }
                }
                else if(lineNumber==4)
                {
                    if(value.contains("_")){
                        String temp[] = value.split("_");
                        analyteCode = temp[0].trim();
                        a[j] = tokenNumber;
                        j++;
                    }
                }
                else if(lineNumber>4)
                {
                    if(tokenNumber==0){
                        componentID=value;
                    }

                }
                tokenNumber++;
                //System.out.println("Line Number : "+lineNumber+" Token Number: "+tokenNumber+"Value: "+st.nextToken());
            }
            //reset token number
            tokenNumber = 0;

        }

但我需要与前一列分析物代码相对应的分析物结果......因为它也可能为空......所以它会消失所有逗号并且不解析与前一列分析物代码相对应的结果。

4

1 回答 1

3

Mudit,我不确定你是否有不使用任何开源库的强迫症,所以我强烈推荐以下广泛使用的开源 CSV 解析器。它将在编码和性能方面为您节省大量精力。请检查它们是否满足您的特定需求。

  1. Apache Commons CSV 解析器
  2. OpenCSV 解析器
于 2011-08-26T05:35:38.330 回答