// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents


**CSVを読み込むJavaライブラリ [#af8faa1a]
仕事ではよくCSVファイルを読み込んで云々といった業務処理が結構必要になったりしますが、Javaのライブラリを探していたところ、よさげなライブラリが見つかりました。

[[opencsv - an open source csv parser for Java>http://opencsv.sourceforge.net/]]

ちょっと触ったところ非常にシンプルで使いやすかったのでメモっておきます。


**ダウンロード [#o48fbf97]
[[opencsv - an open source csv parser for Java>http://opencsv.sourceforge.net/]] より、ダウンロード可能です。


**使ってみる。 [#fc391ad0]
Eclipseのプロジェクトとしてアップしました。
-http://www.masatom.in/viewvc/trunk/CSVReaderSamples/?root=Examples

-sample.csv
 姓,名,年齢
 とうきょう,たろう,33
 東京,太郎,15


-プログラム
 public static void main(String[] args) throws IOException {
   CSVReader reader = new CSVReader(new FileReader("sample.csv"));
   String[] nextLine;
   while ((nextLine = reader.readNext()) != null) {
     // nextLine[] is an array of values from the line
     System.out.println(nextLine[0] + " " + nextLine[1] + " etc...");
   }
 }

実行結果は以下の通り。
 姓 名 etc...
 とうきょう たろう etc...
 東京 太郎 etc...

csvファイルをパースして、適切に分割してくれています。

サンプルは単純でしたが、ダブルクォート("")で囲まれたCSVやタブ区切りのファイル、""内のカンマの取り扱い、途中に改行が入るCSV、たとえば
 姓,名,年齢
 とうきょう,"た
 ろう",33
 東京,太郎,15
こんなたち悪いCSVなども、正しく取り扱うことができます。すごいです。。







**TIPS集 [#oa4d3768]
***CSVの順番とJavaBeansのフィールドをマッピングする方法 [#m634fc39]
ColumnPositionMappingStrategyをつかう

***CSVのヘッダ行のヘッダ名称とフィールドをマッピングする方法 [#a69969de]
HeaderColumnNameTranslateMappingStrategyをつかう


***CSVのヘッダ行のヘッダ名称がそのままフィールド名の場合 [#g114b09c]
HeaderColumnNameMappingStrategyをつかう



**関連リンク [#p5fcd061]
-[[opencsv - an open source csv parser for Java>http://opencsv.sourceforge.net/]]



----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS