opencsv を使って CSV ファイルの読み込み開始行を指定する

公開日: : 最終更新日:2014/01/28 opencsv , ,

opencsv は、読み込むファイルの開始位置を指定することができます。

わざわざ確認する必要もないくらい小さなことですが、ちょっと触ってみたのでメモしておきます。

検証プログラムは Github に登録してあります。

よかったら参考にしてみてください。

icatch-dog-ear_mini

photo credit: quinn.anya via photopin cc

目次

1. 動作環境

1-1. Java

$ java -version
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

ですが、いろいろ都合があって、pom.xml にはコンパイラのバージョンを 1.6 で定義しています。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.0</version>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
    <encoding>UTF-8</encoding>
  </configuration>
</plugin>

1-2. Maven

この検証プログラムは Maven を使ってビルドしています。 プログラム作成時に使用した Maven のバージョンは次の通りです。

$ mvn -v
Apache Maven 3.0.4 (r1232337; 2012-01-17 17:44:56+0900)
Maven home: C:\Users\xxx\maven-3.0.4
Java version: 1.7.0_11, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_11\jre
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

1-3. commons-io

pom.xml を見ればそこにバージョンは書いてありますが、2.4 を使っています。

<dependency>
  <groupId>commons-io</groupId>
  <artifactId>commons-io</artifactId>
  <version>2.4</version>
</dependency>

2. 検証内容

2-1. CSV ファイル

検証に使った CSV の内容は次の通りです。

"line1", "aaa", "111"
"line2", "bbb", "222"
"line3", "ccc", "333"
"line4", "ddd", "444"

このファイルを使って、3行目から読み込むことを確認します。

2-2. テストコード

テストコードは次の通りです。

public class StartReadingLineTest {
    
    private CSVReader sut;

    @Before
    public void setUp() throws Exception {
        int lineNumber = 2; // ファイルの読み込み開始行
        
        sut = new CSVReader(new InputStreamReader(
                StartReadingLineTest.class.getClassLoader().getResourceAsStream(
                        StartReadingLineTest.class.getSimpleName() + ".csv"), "UTF-8"),
                        CSVParser.DEFAULT_SEPARATOR, // デフォルトのセパレータは「カンマ」
                        CSVParser.DEFAULT_QUOTE_CHARACTER, // デフォルトの囲み文字はダブルクォート
                        lineNumber); // 第4引数に、ファイルの読み込み開始行を指定する
    }

    @Test
    public void ファイルを3行目から読み込める() throws Exception {
        List<String[]> actual = sut.readAll();
        
        assertThat("3行目から読み込むので、読み込んだファイルの行数は2である", actual.size(), is(2));
        
        assertThat("3行目の内容が正しい", Arrays.toString(actual.get(0)), is("[line3, ccc, 333]"));
        assertThat("4行目の内容が正しい", Arrays.toString(actual.get(1)), is("[line4, ddd, 444]"));
    }
}

実行結果はもちろんグリーンになります。

3. まとめ

読み込み開始行を指定できるのは気が効いてます。

利用頻度は多くないかもしれませんが、自分で実装するのは面倒くさいので覚えておきたいところです。

4. 検証プログラムを Github に登録しました

検証プログラムは Github に登録してあります。

よかったら参考にしてみてください。

5. その他の opencsv に関する記事

opencsv に関する記事は次の通りです。
気になる記事があったらぜひチェックしてみてください!

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

icatch-strategy_mini

opencsv の HeaderColumnNameMappingStrategy を使って CSV を Bean に変換する

opencsv の CSV 読み込み機能の1つで、CSV の1行目がヘッダになっている場合に Bea

記事を読む

icatch-translate_mini

opencsv の HeaderColumnNameTranslateMappingStrategy を使って CSV を Bean に変換する

opencsv の CSV 読み込み機能の1つで、CSV の1行目がヘッダになっている場合に Bea

記事を読む

icatch-ColumnPositionMappingStrategy

opencsv の ColumnPositionMappingStrategy を使って CSV を Bean に変換する

opencsv を使うと、CSV を読み込んで String の配列に変換してくれます。 Strin

記事を読む

CSSS85_zangyoumonita20131019500

opencsvの検証をしてみた

お客さんから CSV の解析でバグがあると指摘があり、そのバグ解消のために opencsv を検証し

記事を読む

Googleアドセンス用(PC)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


七 + 6 =

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑