CSV ファイルを読み取る

JavaBeginner
オンラインで実践に進む

はじめに

この実験では、Java プログラミング言語を使って CSV ファイルを読み取る方法を学びます。CSV(Comma Separated Values)は、システム間でデータを保存および交換するために使用されるファイル形式です。CSV ファイルを読み取るために 2 つの方法を使います。OpenCSV ライブラリを使う方法と Scanner クラスを使う方法です。

ライブラリをインポートする

コードで OpenCSV と Scanner クラスを使用するには、ライブラリの依存関係をインポートする必要があります。CSVReader.java ファイルでは、ファイルの先頭に次のコードを追加します。

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
import com.opencsv.CSVReader;

OpenCSV ライブラリを使って CSV ファイルを読み取る

OpenCSV ライブラリを使って CSV ファイルを読み取ることができます。次のコード スニペットは、OpenCSV を使って CSV ファイルを読み取る方法を示しています。

try {
    FileReader fileReader = new FileReader("students.csv");
    CSVReader csvReader = new CSVReader(fileReader);
    String[] nextRecord;
    while ((nextRecord = csvReader.readNext())!= null) {
        System.out.println(nextRecord[0] + " " + nextRecord[1] + " " + nextRecord[2]);
    }
    csvReader.close();
} catch (IOException e) {
    System.out.println(e.getMessage());
}

変更を保存し、コードをコンパイルして実行するには、ターミナルで次のコマンドを実行します。

javac CSVReader.java && java CSVReader

このコードは、現在のディレクトリにある students.csv という名前の CSV ファイルを読み取り、CSV データをコンソールに出力します。

Scanner クラスを使って CSV ファイルを読み取る

CSV ファイルを読み取るために Scanner クラスも使用できます。次のコード スニペットはその方法を示しています。

try {
    File file = new File("students.csv");
    Scanner scanner = new Scanner(file);
    scanner.useDelimiter(",");
    while (scanner.hasNext()) {
        System.out.print(scanner.next() + " ");
    }
    scanner.close();
} catch (FileNotFoundException e) {
    System.out.println(e.getMessage());
}

この例では、Scanner クラスを使って students.csv という名前のファイルを読み取り、CSV の値を区切る区切り文字 , を指定しています。

変更を保存し、コードをコンパイルして実行するには、ターミナルで次のコマンドを実行します。

javac CSVReader.java && java CSVReader

このコードは、現在のディレクトリにある students.csv という名前の CSV ファイルを読み取り、CSV データをコンソールに出力します。

まとめ

この実験では、Java プログラミング言語を使って CSV ファイルを読み取る方法を学びました。CSV ファイルを読み取るために 2 つの方法を使いました。OpenCSV ライブラリを使う方法と Scanner クラスを使う方法です。OpenCSV ライブラリは CSV ファイルを読み取るための便利な方法を提供しますが、外部の依存関係が必要です。Scanner クラスは CSV ファイルを読み取るための簡単な方法を提供しますが、複雑な CSV 構造を処理する際にいくつかの制限があります。