Java - OpenCsvでCSVファイル読み書きする方法

JavaでCSVファイルを読み書きするとき、OpenCsvと呼ばれるライブラリを使用することができます。 もちろん、簡単なCSVファイルを作成したら、直接実装することもできます。

私は、単純なCSVファイルのみを作成しようとしたため、読み取り/書き込みを行う方法のみ作成しました。 サイトに入ってサンプルを見れば、豪華な方法で効率的なCSVファイルを作成できるようにガイドをします。

OpenCsvの高度な機能を使用している場合、OpenCsvを参照してください良さそうです。

ライブラリの設定

私はGradleプロジェクトを作成しました。 gradleを使用すると、次のように依存性を設定するとします。

dependencies {
    ...
    implementation group: 'com.opencsv', name: 'opencsv', version: '4.4'
}

Write CSV

以下は、CSVファイルを作成します。

package example;

import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class OpenCsv {

    public static void writeDataToCsv(String filePath) throws IOException {
        CSVWriter writer = new CSVWriter(new FileWriter(filePath));
        String[] entries = "EW#City#State".split("#");  // 1
        writer.writeNext(entries);  // 2

        String[] entries1 = {"W", "Youngstown", "OH"};  // 3
        writer.writeNext(entries1);

        String[] entries2 = {"W", "Williamson", "WV"};
        writer.writeNext(entries2);

        writer.close();
    }

    public static void main(String args[]) throws IOException {
        writeDataToCsv("./sample.csv");
    }
}
  1. split()を利用して、文字列の配列を作成することができます。
  2. writeNext()を呼び出すと、引数がCSVファイルに保存されます。

3.直接配列にアイテムを入れてもされます。

生成されたファイルの内容は、次のとおりです。

"EW","City","State"
"W","Youngstown","OH"
"W","Williamson","WV"

Read CSV

以下は、CSVファイルを作成し、CSVファイルを読んでデータを出力する例です。

package example;

import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class OpenCsv {

    public static void writeDataToCsv(String filePath) throws IOException {
        CSVWriter writer = new CSVWriter(new FileWriter(filePath));
        String[] entries = "EW#City#State".split("#");  // 1
        writer.writeNext(entries);

        String[] entries1 = {"W", "Youngstown", "OH"};  // 2
        writer.writeNext(entries1);

        String[] entries2 = {"W", "Williamson", "WV"};
        writer.writeNext(entries2);

        writer.close();
    }

    public static void readDataFromCsv(String filePath) throws IOException {
        CSVReader reader = new CSVReader(new FileReader(filePath)); // 1
        String [] nextLine;
        while ((nextLine = reader.readNext()) != null) {   // 2
            for (int i = 0; i < nextLine.length; i++) {
                System.out.println(i + " " + nextLine[i]);
            }
            System.out.println();
        }
    }


    public static void main(String args[]) throws IOException {
        writeDataToCsv("./sample.csv");
        readDataFromCsv("./sample.csv");
    }
}
  1. CSVReaderを生成します。
  2. readNext()でCSVファイルを行単位で読み取ることができます。アイテム数の配列が返されます。

実行結果は次のとおりです。

0 EW
1 City
2 State

0 W
1 Youngstown
2 OH

0 W
1 Williamson
2 WV

参考

Related Posts

codechachaCopyright ©2019 codechacha