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();
}
}
}

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/08/28 10:14:58
  • 終了:2013/09/04 10:15:11

回答(3件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982013/08/28 10:31:10

id:zachouR

ありがとうございました。

2013/09/03 14:41:24
id:a-kuma3 No.2

a-kuma3回答回数4561ベストアンサー獲得回数19052013/08/28 10:39:13

ポイント33pt

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 インスタンスとして扱っても良いし。

id:zachouR

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

2013/09/03 14:42:13
id:dawakaki No.3

だわかき回答回数797ベストアンサー獲得回数1222013/08/28 11:49:38

ポイント33pt

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

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

id:zachouR

ありがとうございました。参考にさせていただきます!

2013/09/03 14:42:25

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません