5列のcsvファイルがあります。2 列目の値がユーザー入力と一致する行を取得したいと考えています。
csvの行を読んでみました。csv 区切り文字を使用して配列を作成し、配列内の 2 番目の値を確認します。
同じためのより良いアプローチはありますか。
CSV 形式は、通常、固定の列または行の位置で処理されます。行と列の固定位置が保証されない場合は、ヘッダーの処理を調べて行の位置を決定できます。
原則として、特に使用している CSV ファイルのデータまたは出力形式を制御しない場合は、専用の CSV パーサーを使用する方がはるかに簡単になります。CSV 形式にはさまざまなコーナー ケースが考えられるためです (たとえば、データ フィールドのコンマ) で適切に処理できませんString#split()
。CSV ファイルを解析するために頻繁に言及される 2 つのオープンソース Java ライブラリは、SuperCSVとOpenCSVです。OpenCSV は、ヘッダーを含む CSV ファイルの解析を Java Bean オブジェクトに処理できます。SuperCSV は、その機能と、ヘッダーを含む CSV ファイルのマップへの解析の両方を処理できます。
以下のコードを参照してください。
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);
}
}