phicdy devlog

Androidアプリ開発やその他技術系の記事をたまに書きます

AndroidとかiOSとかモバイル多め。その他技術的なことも書いていきます。

【Android】 CSVファイルを読み込んでパースする

Androidで初期データなどCSVファイルを処理したい場合がある。
その時は、CSVファイルをassetsと呼ばれるフォルダに置き、それを読み込んでパースを行う。
assetsフォルダはプロジェクトの一番上に作成する。
assetsフォルダへのアクセスはAssetManagerを通じて行う。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Map;
import java.util.StringTokenizer;

import android.content.Context;
import android.content.res.AssetManager;

public class CSVParser {

	public static void parse(Context context) {
		// AssetManagerの呼び出し
		AssetManager assetManager = context.getResources().getAssets();
		try {
			// CSVファイルの読み込み
			InputStream is = assetManager.open("data.csv");
			InputStreamReader inputStreamReader = new InputStreamReader(is);
			BufferedReader bufferReader = new BufferedReader(inputStreamReader);
			String line = "";
			while ((line = bufferReader.readLine()) != null) {
				// 各行が","で区切られていて4つの項目があるとする
				StringTokenizer st = new StringTokenizer(line, ",");
				String first = st.nextToken();
				String second = st.nextToken();
				String third = st.nextToken();
				String fourth = st.nextToken();
				
				// 何らかの処理
			}
			bufferReader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}