AndroidでCSVファイルを読み込みたいと思いいろいろと調べていました
調べるといろいろとでてきますが、もっと使いやすくならないかなぁということで自分なりに使いやすいCSVファイルのプログラムを作ってみたので記事にしておきます
デモ
Androidレイアウトは下記のようなものです
ボタンを押すとAssetsに入っているCSVファイルを読み込みます
サンプルとして、CSVファイルにはミュージックアーティストの名前とwikipediaから引用した概要を入れています
プログラム
本プログラムはGitHubにあげています
工夫点として、CSVファイルを読みこむ関数を作り、連想配列(Map)で値を返すようにしています
連想配列のkeyは列名にすることで簡単に値を取り出せるようにしてます
サンプルのCSVファイルは3つの列名のみしか取得していませんが、それ以上の列名を入れても対応します(多分)
GitHub - Momijinn/SampleAndroidCsvReader: AndroidでCsvファイルを読み込むためのサンプルファイル
github.com
サンプル
Assetsファイルの中に下記のようなCSVファイル(myID.csv)があります
ID | NAME | OVERVIEW |
---|---|---|
x01 | NMB48 | NMB48(エヌエムビー フォーティーエイト[注 1])は、日本の女性アイドルグル~ |
x02 | MOMOLAND | MOMOLAND(モモランド)は、韓国のガールズグループ。MLDエンタ~ |
x03 | 乃木坂46 | 乃木坂46(のぎざか フォーティーシックス、Nogizaka46)は、日本の女性アイド~ |
InputCsvFileという関数に読み込みたいCSVファイルを渡してあげると、連想配列で帰ってきます
そして、Logにかかれている通りに入れるとIDがX01のNAME(名前)を取得(NMB48)がとれます
ほかにもOutData.get(“x01”).get(“OVERVIEW”)としてあげればIDがX01のOVERVIEW(概要)がとれます
String TargetCsvFile = "myID.csv";
Map<String, Map<String, String>> OutData = InputCsvFile(TargetCsvFile);
Log.d("x01_NAME", OutData.get("x01").get("NAME"));
//OUTPUT: NMB48