【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件






コメントを残す