今回はCSVファイルの読み込みです。
読み込みには、Apache Commons CSVを使います。
Apache Commons CSVの入手
mavenを使って入手
pom.xmlは、こんな感じ。
今回はファイル操作なので、Apache Commonsの中でも「Apache Commons CSV」が対象。
1 2 3 4 5 6 | <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.10.0</version> </dependency> |
手動で入手
手動で入手するのであれば、以下のjarを入手することになります。
「Apache Commons CSV」は依存関係がないので、手動でも簡単に手に入れられますね。
https://mvnrepository.com/repos/central
- commons-csv-1.10.0.jar
※2023年8月現在です。
ちなみに、Apache License 2.0で提供されています。
Apache Commons CSVを使ってCSVファイルを読み込むサンプル
Apache Commons CSVを使って、CSVファイルを読み込みます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.io.FileReader; import java.io.IOException; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; public class CsvReadTest { public static void main(String[] args) { //CSVファイル読み込み try(CSVParser parser = new CSVParser(new FileReader("C:\\work\\test.csv"), CSVFormat.DEFAULT);) { for (CSVRecord rec : parser) { //CSVの項目を読み込む String col1 = rec.get(0); String col2 = rec.get(1); String col3 = rec.get(2); //読み取った項目を出力 System.out.println(col1 + " , " + col2 + " , " + col3); } } catch (IOException e) { e.printStackTrace(); } } } |
実行結果
読み込んだCSVファイルの中身が出力されます。
1 2 3 4 | コード , 都道府県名 , かな 01 , 北海道 , ほっかいどう 02 , 青森県 , あおもりけん 03 , 岩手県 , いわて"けん |
ちなみに、読み込んだCSVファイルはこちら。
「いわてけん」に少し意地悪してみましたが、ちゃんと読めてますね。
1 2 3 4 | "コード","都道府県名","かな" "01","北海道","ほっかいどう" "02","青森県","あおもりけん" "03","岩手県","いわて""けん" |
サンプルの解説
CSVファイルのパスとCSVフォーマットを、CSVParserのコンストラクタで指定します。
CSVParserはIterableなので、for等で回すとCSVRecordが取得できます。
CSVRecordからは、インデックスを指定すれば各カラムの値を取得できます。
もちろんダブルコーテーションやエスケープも対応してるので、便利ですね。