JavaでCSVファイルを読み込む方法!簡単なやり方をご紹介!
  • facebookページ
  • twitterページ
  • 2019.12.02

    JavaでCSVファイルを読み込む方法!簡単なやり方をご紹介!

    JavaプログラムでCSVファイルを読み込む処理は、業務系のシステムを作っているプログラマーをはじめとして意外と触れる機会の多いものです。

    本記事では、JavaでCSVファイルを読み込む方法をなるべく簡単にご紹介していきたいと思います。

    JavaでCSVファイルを読み込む方法

    JavaでCSVファイルを読み込む際に利用されるのが「FileInputStream」クラスです。

    または「FileReader」クラスを用いてCSVの読み込みを行うことも可能です。

    基本的にはテキストファイルと同じようにcsvファイルを読み込んだ後に、カンマ部分で分割してデータの取得を行います。

    本記事では、比較的初心者にも分かりやすく効率も良い、ストリーム形式で読み込む「FileInputStream」を紹介したいと思います。

    JavaのFileInputStreamでCSVファイルを読み込んでみよう

    Javaから提供されている「FileInputStream」クラスを利用してCSVファイルの読み込み処理を行う方法を、サンプルコードを交えながらご紹介していきたいと思います。

    CSVファイルを用意する

    まず今回Javaプログラムで読み込むようのサンプルCSVファイルを用意します。

    「sample1.csv」というファイル名で内容は下記の通りとなります。

    1行目にそれぞれのカンマ毎のカテゴリとして「名前(name)」「年齢(age)」「住所(address)」を設定し、2行目以降に各ユーザー情報を持ったcsvファイルを想定したサンプルです。

    メインとなるJavaファイルを作成する

    次にメインとなるJavaファイルの内容が下記の通りとなります。

    処理の流れを大まかに説明しておきます。

    ソースコード上のコメントと合わせて、どの行でなんの処理が行われているのか把握しておきましょう。

    CSVファイルの読み込み

    まず※1の行で、「FileInputStream」を利用して「sample1.csv」ファイルを読み込みます。

    この時点ではテキストファイルとして認識出来ないため、※2の行で「InputStreamReader」を用いてテキスト形式に変換します。

    次に変換したテキストファイルを※3の行で「BufferedReader」を用いてまとめて読み込んでいます。

    ファイルの内容を1行ずつ抽出する

    「BufferedReader」クラスには「readLine」メソッドが提供されており、1行ずつテキストファイルを処理していくことが可能となっています。

    ※4の行では上述した「readLine」メソッドを用いて、1行のデータを変数「currentContent」に格納しています。

    ファイルが終わりに達している場合には、「null」が変数に格納されるため、「while」文を利用しファイルの終わりまで中身のデータを出力する処理を記述しています。

    ※5の行では、読み込んだ行が最初の行かどうかを判定しています。

    通常、CSVファイルで定義されているデータは1行目にカラム名を指定し、2行目から実際のデータが入力されているケースがほとんどです。

    サンプルのCSVファイルを見ていただいても同様に1行目がカラム名の定義、2行目以降から実際のデータが設定されていることをご確認頂けます。

    抽出した1行のデータを加工して処理を実施する

    ※6の行では、抽出した1行のデータを更にカンマで区切り配列データとして変数「arrayColumnData」に格納しています。

    ※7の行で先頭行のカラム名の回数分ループ処理を行い、※8の行で「カラム名 = 該当行のデータ」として出力する処理を記述しています。

    ポテパンダの一言メモ

    ※9で行なっているBufferedReaderインスタンスのclose処理はエラーが起きても起きなくても必ず実行する必要があるので、Finally句の中で宣言しています。

    さいごに:JavaでCSVファイルの読み込みは簡単に行える

    本記事では、JavaプログラムでのCSVファイルの読み込み方について、なるべく簡単に行える方法でご紹介してきました。

    Javaからは今回ご紹介したように「FileInputStream」や「BufferedReader」など便利なクラスが提供されているため、一見難しそうに思えるCSVファイルの読み込みもサンプルのように比較的簡単に行えます。

    何かと利用する機会も多いCSVファイルとの連携処理ですので、ぜひ一度ご自身でサンプルコードを編集しながら理解を深めてみてください。


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE

    ポテパンおすすめ案件