人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Androidプログラムを組んでいます。

以下のようなソースコードでテキストファイルを読み込もうと思っております。
この場合は、単純に「test.txt」を読むことになりますが、このtest.txtはどこにおくといいのでしょうか?

またSDカード内においているテキストファイルのパスを書くとそこまでアクセスできるようになるでしょうか?テキストファイルへのパスの例を教えてください。

僕の想像)
/sdcard/test.txt


FileInputStream fis = null;
BufferedReader in = null;

EditText editText = (EditText)findViewById(R.id.myEditText);

// ファイルの読込
try {
fis = this.openFileInput("test.txt");
in = new BufferedReader(new InputStreamReader(fis));
editText.setText(in.readLine());

} catch (IOException e) {
e.printStackTrace();

}finally {
if(in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

●質問者: zachouR
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●34ポイント

http://androidn.hannnari.com/link15-fileyomikomi.html


zachouRさんのコメント
ありがとうございました。

2 ● a-kuma3
●33ポイント

android.os.Environment クラスの、getExternalStorageDirectory() メソッドを取得して使うと良いらしいです。

SDカードのディレクトリパスはandroid.os.Environment.getExternalStorageDirectory().getPath()で取得します。直接/mnt/sdcardを指定してもファイルの読み書きはできますが機種によりSDカードのマウント先ディレクトリ名が違うためgetExternalStorageDirectory()メソッドを使うほうが良いです。

http://www.ipentec.com/document/document.aspx?page=android-read-write-sd-card-file

後、SDカードが挿入されているかどうかのチェックも。

でSDカードがマウントされているディレクトリの位置が取れる。
そもそもSDカードがマウントされているかどうかは

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

がtrueになるかどうかで判定できる。

http://d.hatena.ne.jp/shokai/20100602/1275431637



一応、android.os.Environment#getExternalStorageDirectory() のマニュアルも。
http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory%28%29

戻り値が File なので、File#getPath() して、文字列としてファイルパスを加工しても良いし、File(File parent, String child) で、File インスタンスとして扱っても良いし。


zachouRさんのコメント
やってみました。Eclipseで実行すると読みに行くSDカードの場所がエミュレータ上のものになるようですので、ここは設定で変えられると思いましたのでやってみたいと思います。

3 ● だわかき
●33ポイント

そのコードで良いと思います。
openFileInput/openFileOutputでパス名を指定しないと、ローカルファイルといって、OSがアプリ毎にパスを決定するので、そのまま読み書きができます。
http://android.roof-balcony.com/shori/strage/localfile-2/

SDカードのパスは Android API を使って取得することが出来ます。
詳しい手順は下記をご覧下さい。
http://inujirushi123.blog.fc2.com/blog-entry-30.html


zachouRさんのコメント
ありがとうございました。参考にさせていただきます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ