ちょっと CSV ファイルを読み込む Java プログラミングを実装したい場合に役立ちそうなサンプルをメモしておきます。
CSVファイル読み書きには RFC 4180 を実装する必要がありますが、一般的にはライブラリ利用により実現します。
この例では Apache commons-csv を利用した CSVファイル読み込みサンプル記述を残しておきます。
Maven (pom.xml)
まず最初に、CSV ファイル読み込みを実現するためのライブラリである Apache
commons-csv
をビルドに組み込みます。 pom.xml
ファイルの <dependencies>
に以下の Maven Repository
記述を追加します。 (ビルドでの自動ダウンロードの実現のためには、インターネットに接続されている必要があります)
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.9.0</version>
</dependency>
なお、Maven Repos 上の commons-csv はこちらを参照してください。
Java コード
commons-csv
が利用可能になったので、早速これを Java で利用して CSVファイル読み込みを実行するコードを記述しましょう。
このサンプルコードでは、以下のCSVファイルをサンプルとして読み込む前提となっています。
- 郵便局: 読み仮名データの促音・拗音を小書きで表記しないもの(zip形式)
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
public class App {
public static void main(String[] args) throws IOException {
try (CSVParser parser = CSVFormat.DEFAULT.parse( //
new BufferedReader(new InputStreamReader(new FileInputStream( //
"./src/KEN_ALL.CSV"), "Windows-31J")))) {
for (CSVRecord record : parser) {
System.err.println(record.get(2) //
+ ": " + record.get(6) + " " + record.get(7) + " " + record.get(8));
}
}
}
}
簡易な解説
-
CSVFormat
からCSVParser
インスタンスを作成します。 - CSVファイルの 1行ごとを
CSVRecord
インスタンスとして取得します。 - 1行の各列を get メソッドで取得します。
文書情報
- 初出: 2021-11-15