Contents
【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件
コメントを残す