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;

        }

しかし、前の列の分析コードに対応する分析結果が必要です....それもnullになる可能性があるため....そのため、すべてのコンマが消え、前の列の分析コードに対応する結果が解析されません。

4

1 に答える 1

3

Mudit、オープンソースのライブラリを使用しないように強制されているかどうかはわかりません。そのため、次の広く使用されているオープンソースの CSV パーサーを強くお勧めします。コーディングとパフォーマンスの面で多くの労力を節約できます。Pls はあなたの特定の必要性のためにそれらをチェックアウトします。

  1. Apache Commons CSV パーサー
  2. OpenCSV パーサー
于 2011-08-26T05:35:38.330 に答える