1

5列のcsvファイルがあります。2 列目の値がユーザー入力と一致する行を取得したいと考えています。

csvの行を読んでみました。csv 区切り文字を使用して配列を作成し、配列内の 2 番目の値を確認します。

同じためのより良いアプローチはありますか。

4

2 に答える 2

0

CSV 形式は、通常、固定の列または行の位置で処理されます。行と列の固定位置が保証されない場合は、ヘッダーの処理を調べて行の位置を決定できます。

原則として、特に使用している CSV ファイルのデータまたは出力形式を制御しない場合は、専用の CSV パーサーを使用する方がはるかに簡単になります。CSV 形式にはさまざまなコーナー ケースが考えられるためです (たとえば、データ フィールドのコンマ) で適切に処理できませんString#split()。CSV ファイルを解析するために頻繁に言及される 2 つのオープンソース Java ライブラリは、SuperCSVOpenCSVです。OpenCSV は、ヘッダーを含む CSV ファイルの解析を Java Bean オブジェクトに処理できます。SuperCSV は、その機能と、ヘッダーを含む CSV ファイルのマップへの解析の両方を処理できます。

この質問この質問、およびこの質問には、他の CSV ライブラリがリストされています。

于 2012-06-18T12:53:08.543 に答える
0

以下のコードを参照してください。

String fName = "C:\\Amit\\abc.csv";
    String input="5";
    String thisLine;
    FileInputStream fis = new FileInputStream(fName);
    DataInputStream myInput = new DataInputStream(fis);

    while ((thisLine = myInput.readLine()) != null) {
        String strar[] = thisLine.split(",");
            if(input.equalsIgnoreCase(strar[1])){
                System.out.println("Found row :"+thisLine);
            }
        }
于 2012-06-18T12:36:25.993 に答える