ファイル選択ダイアログを使ってテキストファイルを読み込みたかった。参考にしたのがテキストじゃなくて、画像だったので少し変えた。
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);intent.setType("image/*");
startActivityForResult(intent, READ_REQUEST_CODE);
mimetypeを画像ではなくて、テキストに変更。
intent.setType("text/plain");
onActivityResultでダイアログで選択が終わったらURIを取得して、テキストを読み込むのを実行。
文字コード自動判別を前のをそのまま利用。
Buttonをクリックしたらファイル選択ダイアログを起動することにした。
ファイル選択ダイアログから得られたファイルの情報はURIで渡される。それを利用するにはonActivityResultからURIを受け渡す処理を書く。
URIをInputStreamにしてファイルを読み込む。
InputStream inputStream = getContentResolver().openInputStream(uri);
ここから先はテキストファイルを読み込んでテキストを表示するのと変わらない。
inputStreamはWindowsやMACなどでのJAVAの書き方と変わらないが、URIを利用したり、intentを利用するのはアンドロイド特有な感じがして覚えていないとすぐには難しく感じた。
次は画像の読み込みと表示、ファイルのZIP圧縮や読み込みなどがやれれば。