Javaエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnetJava
  2. Javaコラム
  3. Java TIPS
  4. JavaでのCSVファイル読み込み方法とは?

JavaでのCSVファイル読み込み方法とは?

  • Java TIPS
公開日時:   更新日時:
JavaでのCSVファイル読み込み方法とは?
この記事でわかること
    システム
    エンジニア
    CSVファイル読み込み方法ってどんな方法なのですか?
    プロジェクト
    マネージャー
    カンマで区切られたファイルをJavaプログラムを使って読み込む方法です。

    CSVファイルとは?

    エクセルのデータを他のアプリケーションで利用する場合には、CSV形式で一旦データを保存してから読み込むことが多いのではないでしょうか。
    CSVとはcomma-separated valuesの略で、カンマで区切られたデータ形式です。CSVファイルはテキストファイルのため扱いやすく、アプリケーションに依存しないデータ形式として、よく使われます。
    CSVファイルは、複数のレコードから成り立ちます。レコード内のフィールドはカンマで区切られ、レコード間は改行で区切られます。1行が1レコードなので、エクセルなどの表と親和性の高い形式です。

    CSVファイルのデータ例

    CSVのデータ例を示します。下に示す例は、科目毎の点数を記録する表をCSV形式に変換したものです。
    1行目は表のヘッダで、各列の属性を表しています。2行目以降は、各人のデータを表しています。行内のデータの区切りがカンマ「,」となっているのがわかります。

    CSVを1レコードずつ読み込む方法

    以下では、CSVファイルのデータをJavaプログラムで処理するために、データを読み込む方法を説明していきます。
    最初に、CSVファイルを読み込み、画面に出力するJavaプログラムについて説明します。

    行毎に読み込みカンマで分割

    CSVデータは1行が1レコードなので、行毎の読み込みが適しています。読み込みには、JavaのBufferdReaderクラスのテキスト行を読み込むメソッドreadLineを利用します。
    readLineで読み込んだ1行分の文字列(line)を分割するには、splitメソッドを利用します。引数にカンマを指定することで、lineをカンマで分割した結果がString配列の形式で返却されます。

    行読み込みのコード例

    CSVデータを1行ずつ読み込むJavaプログラムの例を示します。

    出力結果

    1行読み込んだら、1行分のデータを出力します。このコード例では、データ間にスペースを挿入しています。CSVファイルの例で示したデータを入力ファイルに設定し実行すると、次のように出力されました。

    CSVを2次元配列に読み込む方法

    上のプログラムでは1レコードずつ処理を行いましたが、データ全体を処理したい場合には、読み込みデータの蓄積が必要です。ここでは、2次元配列にデータを格納するJavaプログラムの例を示します。

    2次元配列にデータを格納する

    2次元配列の宣言では、データの行数を決める必要があります。しかし、正確な行数はデータを読み込まないとわからないことも多いでしょう。そこで、想定行数の最大値MAX_DATA_NUMSを、配列の行数に設定します。
    1行読み込んでString配列に格納するのは前のプログラムと同じですが、今回は、data[index]のように行をインデックスとする2次元配列に格納することにします。
    読み込みデータの処理例として、画面への出力処理を追加します。2次元配列を2重ループで辿りますが、配列の行数は最大値で確保しているため、実際のデータ数に合わせて処理を終了する必要があります。そこで、data[i]がnullになったらループを中断します。

    2次元配列のコード例

    2次元配列にCSVファイルデータを読み込むJavaプログラムのコード例を示します。

    CSVをArrayListに読み込む方法

    上の2次元配列のコード例では、行数の最大値を定数で指定しましたが、最大値が不明な場合には、JavaのArrayListを使う方法があります。
    ここでは、要素がString配列型のArrayListを使い、CSVファイルを読み込むJavaプログラムの例を示します。splitで返却されるString配列を、addメソッドでリストに追加していきます。

    システム
    エンジニア
    読み込み方法にも種類があるのですね。
    プロジェクト
    マネージャー
    使いやすい読み込み方法を習得し、CSVファイルを作成していきましょう。

    JavaのCSVファイル読み込み方法を理解しよう

    カンマ区切りのデータ形式CSVファイルを、Javaプログラムで読み込む方法を紹介しました。1行毎に読み込む方法、2次元配列に格納する方法、ArrayListに格納する方法の3つの場合について、Javaプログラムの例を用いて説明しました。
    実際にエクセルなどの表形式データを用いて、CSVファイルを作成し読み込みながら、どの方法が役に立つか考えてみてはいかがでしょうか。

    FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    Java新着案件New Job