- ベストアンサー
Android CSVファイルのデータをHashMapにセットする方法
- AndroidでCSVファイルのデータをHashMapにセットする方法について初心者向けに解説します。
- 具体的な処理のコード例を示し、CSVファイルからデータを読み込み、HashMapにセットする手順を説明します。
- 参考サイトや参考書の情報を活用しながら、効率的にCSVファイルのデータをHashMapにセットする方法を学んでください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
うーん。 CSVReaderを知らないから妄想で答えるけど、 reader.readNext() で一行読み込んで、一行に含まれるデータをString[]にして戻してくれるんだよね? だったら、 HashMap map = new HashMap(); map.put(csv[0],csv[1]) でいいんじゃない? もちろんcsvの長さが2以上のチェックは別途いるよ。
その他の回答 (3)
- koko_u_u
- ベストアンサー率18% (216/1139)
> 今はとりあえずCSVファイルのデータをArrayListにセットし > 試しにテキストビューに表示するようにしています。 > HashMap へセットするためのコードは全くわからず > 下記コードからどうすればいいのかわかりません。 俺がわからんわ。 ArrayList にセットする代わりに HashMap にセットするだけやん。 どこかから「サンプルコード」を拾ってきたとするなら、まずは使用しているメソッドや クラスについてマニュアルなどを一つずつ確認してください。
お礼
勉強不足で無知な質問をしてしまい申しわけありませんでした。 マニュアルをしっかり熟読していきたいと思います。 ありがとうございました。
- koko_u_u
- ベストアンサー率18% (216/1139)
なんとなく、「csvファイルを作り、読み込むところまではわかります」が俺らの想像とは違うような気がする。 わかっていることが確認したいので、CSVファイルを読みこんで各行を標準出力に出力するプログラムを補足に書いてみて。
補足
質問すら的確にできなくてすみません。 自分が一体どこまでわかってるのかすらよくわからないほどのど素人ですが、宜しくお願いします。 僕のような素人が要所で説明すると、有識者の方を逆に混乱させてしまいそうなので、下記に現在のコードをのせておきます。今はとりあえずCSVファイルのデータをArrayListにセットし試しにテキストビューに表示するようにしています。HashMapへセットするためのコードは全くわからず下記コードからどうすればいいのかわかりません。 public class CsvSampleActivity extends Activity { String path = "/sdcard/test.csv"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // read csv file readCsvFile(); } private void readCsvFile() { try { // create reader InputStream input = new FileInputStream(path); InputStreamReader ireader=new InputStreamReader(input, "UTF-8"); CSVReader reader = new CSVReader(ireader,',','"',0); String[] csv; //ArrayListを作成 ArrayList<String> list = new ArrayList<String>(); while ((csv = reader.readNext()) != null) { //アイテムの追加 list.add(csv[0]); } //とりあえずテキストビューに表示 final TextView tv = (TextView)findViewById(R.id.tv1); tv.setText(list.get(2)); reader.close(); ireader.close(); input.close(); } catch (FileNotFoundException e) { Log.e("ERROR", e.toString()); } catch (UnsupportedEncodingException e) { Log.e("ERROR", e.toString()); } catch (IOException e) { Log.e("ERROR", e.toString()); } } } 宜しくお願いいたします!
- pcbeginner
- ベストアンサー率46% (261/560)
? ファイルの読み込みができて、HashMapへの入れ方(putメソッドを使う)がわかってるのに、セットできないってことは、読み込んだ文字列をキーと値に分割することができないってこと? だったら、String.split()を使うか、StringTokenizerを使うといいでしょう。 (まぁ、String.splist()で充分だと思いますが。)
お礼
ありがとうございます。 HashMapへのセットするための記述方法がわかりません。 String.split()など有効なメソッドがあることは何となくわかるのですが、使いどころがわからないというか・・・ コードで直接書いた場合は map.put( "Key1", "あ1001" ); のように単純にセットできるのはわかるのですが、 CSVファイルからセットする場合の手順がわらないのです。 素人過ぎて説明もうまくできなくてすみません。 現在はcsvファイルを読み込み、ArrayAdapterにセットした状態です。スピナーやリストビューへはsetAdapterでセットできますが、この読み込んだcsvファイルをHashMapへセットしていくコードが全く分からない状態です。 サンプルコードなどいただければ大変助かるのですが・・・ わかりにくい質問で申しわけありませんが、宜しくお願いいたします。
お礼
ありがとうございます。 思っていたようになりました!! (csv[0],csv[1])こんな単純にできるとは思いませんでした! > もちろんcsvの長さが2以上のチェックは別途いるよ。 データは常に2以下の長さなので大丈夫です。 本当にありがとうございました。 またわからないときは宜しくお願いいたします。