MENU

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

https://cdn-ak.f.st-hatena.com/images/fotolife/k/kiserukun/20210611/20210611090227.png

CSVファイルとは

CSVとはcomma-separated valuesの略で、カンマで区切られたデータ形式です。

CSVファイルをどのように認識しているのか

JavaではどのようにCSVファイルを認識しているのでしょうか。

例えば下のようなエクセルのCSVファイルがあります。 f:id:kiserukun:20210619135956p:plain

上のCSVファイルはJavaでは

1,だいこん,130円,1個
2,にんじん,90円,1個
3,たまねぎ,50円,1個

のような形で認識します。 「,」カンマが入った形に分解されます。

CSVファイルを読み込む(サンプル)

FileReaderクラスがExceptionを返す可能性があるため、try~catchとthrowsで例外を処理をしています。

import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.BufferedReader;
import java.io.IOException;

public class ReadFile {
public static void main(String[] args) throws IOException {
    try { 
        FileReader file = new FileReader("file.csv");
        BufferedReader csvFile = new BufferedReader(file);
            
        String line;
            
        while((line = csvFile.readLine()) != null) {
            String datas[] = line.split(",");
            for (int i = 0; i < datas.length; i++) {
                System.out.print(datas[i]);
            }
            System.out.println();
        }
        csvFile.close();
    } catch (FileNotFoundException e) {
        System.out.println("ファイルがありません");
        throw e;
    }
}
}

プログラムを実行すると

1だいこん130円1個
2にんじん90円1個
3たまねぎ50円1個


FileReader file = new FileReader("file.csv");
//ファイルを読みます
String datas[] = line.split(",");
//lineをカンマで分割して配列datasに格納します
for (int i = 0; i < datas.length; i++) {
    System.out.print(datas[i]);
 }
//datasの長さの分だけ出力します

ファイルの読み方は別の方法もあるみたいなので、 時間ができたらいろいろ試していきたいと思います。