JavaでCSVファイルの読み込みを行う

Java で CSV ファイルを読み込むときには、テキストファイルを読み込むときと同様に BufferedReader を使用します。ここでは、CSV ファイルの読み込み方法について説明します。

CSV ファイルを読み込む

今回は以下のような CSV ファイル(sample.csv)を読み込んでみます。

以下は CSV ファイルを読み込み、読み込んだデータを表示するサンプルです。

実行結果

上のプログラムでは、まず BufferedReader と FileReader を使用してファイル全体を読み込んでいます。readLine() で読み込んだファイルの文字列を一行ずつ取得し、split() で配列に分割しています。

split() は第1引数に区切り文字を指定しています。split() で「item_00,item_01」の文字列を分割し、{ item_00, item_01 }  のような形で配列に格納しています。そして、このプログラムでは行を読み込むごとにデータを表示しています。String.split() の詳しい使い方については「Javaで文字列を分割する:split()」を参照してください。

ファイルを扱うときの注意点ですが、try catch を使用して必ず IOException の例外を補足する必要があります。また、ファイルの読み込みが終了したら忘れずに close() を呼び出しましょう。

データを配列に格納する

読み込んだ CSV のデータを扱いやすくするために、一度配列に格納する場合がよくあります。

以下は配列に CSV データを2次元配列に格納するサンプルです。

実行結果

上の例では、読み込んだデータを一度2次元配列に格納し、その配列からデータを取り出して表示しています。もし読み込むデータの行や列の個数がわからないときは、配列ではなく ArrayList を使用しても良いでしょう。

文字コードを指定して読み込む

CSV ファイルを読み込むと文字コードによっては、文字化けが発生してしまう可能性があります。そのようなときは InputStreamReader と FileInputStream を使用して、適当な文字コードを指定してあげると、文字化けせずに読み込める場合があります。

上のプログラムでは、InputStreamReader の第2引数に SJIS の文字コードを指定して読みこんでいます。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて