本サイトはプロモーション(広告)が含まれています。

【Java】CSVの読み込みで1行目を飛ばす方法

【Java】CSVの読み込みで1行目を飛ばす方法

 JavaでCSVファイルを読み込みを行う際に1行目はヘッダー行のため、読み込み対象から外したいケースがあります。

 上記の対処法として、ヘッダー情報に記載されている値を含む場合、containsメソッドなどで処理対象しないようにして読み飛ばす方法。

 または、あらかじめreadLineで読み込みをして1行目を飛ばすといった形で読み飛ばすことができます。

containsメソッドなどで処理対象しないようにして1行目を読み飛ばす方法

 ヘッダーの内容は定まった記載であることがほとんどなので、その値をキーに読み取らないということとすれば良いと思います。

 例えば、BufferedReaderで1行ずつ読み込む際に1行目がヘッダーなので読み飛ばしたい場合はcontainsでヘッダー文字列を含むかどうかで1行目を読み飛ばすことができます。

読み込むファイル"C:\\eclipse\\workspace\\test.csv"
※1行目ヘッダー

↓"C:\\eclipse\\workspace\\test.csv"の内容↓
番号,内容
001,あああ
002,いいい
003,ううう

 上記の場合のファイルを読み込む場合は例えば、番号を含む場合は読み込み対象から除くといった形です。

int 入力件数 = 0;
try {
    File file = new File("C:\\eclipse\\workspace\\test.csv");
    BufferedReader br = new BufferedReader(new FileReader(file));

    String line = br.readLine();
    while (line != null) {
        if (!line.contains("番号")) {
            入力件数++;
            System.out.println(line);
        }
        line = br.readLine();
    }
    System.out.println("入力件数" + 入力件数 + "件");
    br.close();
} catch (IOException e) {
    System.out.println(e);
}

// 実行結果
001,あああ
002,いいい
003,ううう
入力件数3件

あらかじめreadLineで読み込みをして1行目を飛ばす方法

1行目は必ずヘッダー情報であるという前提であれば、readLineで1行目の読み込みを完了させた状態で、処理を実施すれば良いです。

 例えば、以下のように実装すれば1行目は処理対象となりません。

読み込むファイル"C:\\eclipse\\workspace\\test.csv"
※1行目ヘッダー
↓"C:\\eclipse\\workspace\\test.csv"の内容↓
番号,内容
001,あああ
002,いいい
003,ううう

 

int 入力件数 = 0;
try {
    File file = new File("C:\\eclipse\\workspace\\test.csv");
    BufferedReader br = new BufferedReader(new FileReader(file));

    String line = br.readLine();
    line = br.readLine();
    while (line != null) {
        入力件数++;
        System.out.println(line);
        line = br.readLine();
    }
    System.out.println("入力件数" + 入力件数 + "件");
    br.close();
} catch (IOException e) {
    System.out.println(e);
}

// 実行結果 
001,あああ
002,いいい
003,ううう
入力件数3件

Javaの記事一覧へ

PAGE TOP