ページ 11

Androidでのファイル入出力について

Posted: 2013年7月09日(火) 18:48
by 奥兵
Androidプログラミングの館を参考にAndroidで動くシューティングゲームを制作に挑戦しており、
現在は敵の出現時期や敵の諸々の情報をなんらかの形式でファイルに収め、それを読み込むことで敵の出現を管理する部分を作ろうとしています。

そこでAndroidにおけるファイル入出力について調べ、サンプルコードを試してそこから実装向けに作っていこうと思ったのですが
ファイル入力のサンプルを実機デバッグで動かしてみたのですが、対象となるファイルをどこにいれていいかわかりません。
ワークスペースや端末内をエクスプローラで探しまわったのですがそれらしいディレクトリが見つけられませんでした。
ファイル出力サンプルを試せばどんなディレクトリに対して入出力するかわかると思いtest.txtというファイルを出力するアプリを動かしてみたのですが。
エクスプローラで実機の内部ストレージやPCの方のドライブも検索してみたのですがファイルが見つけられません。

デバッグの方法がおかしいのでしょうか?
どなたかファイル入出力の方法をご教授願います。

Re: Androidでのファイル入出力について

Posted: 2013年7月09日(火) 21:52
by みけCAT
まずそのサンプルコード(もしくはそれが載っているURLなど)を提示できますか?

Re: Androidでのファイル入出力について

Posted: 2013年7月09日(火) 22:24
by 奥兵
http://it-trick-java.appspot.com/android/c2018.html
こちらのサイトのコードを拝借しました。

上のサイトのファイル出力のサンプルコードを走らせると、エラー等出さずに動くのですが、その後に出力された筈のファイルを探してもみあたりません。
同サイトのファイル一覧の取得のサンプルを走らせると、test.txtが表示されるのでどこかにそのディレクトリが存在すると思うのですが、不思議なことに見当たりません。

Re: Androidでのファイル入出力について

Posted: 2013年7月09日(火) 22:34
by みけCAT
そのコードだと、多分そのアプリからしか見られない場所にファイルを保存しています。
SDカードにファイルを保存するには、例えばこのサイトを参考にしてみてください。
http://www.ipentec.com/document/documen ... -card-file

[search=google]Android SDカード ファイル 書き込み[/search]

Re: Androidでのファイル入出力について

Posted: 2013年7月09日(火) 23:28
by 奥兵
そのアプリ専用の場所とは知っていましたが、エクスプローラで見れない可能性をまったく考えていませんでした。
できればCSVか構造体配列のバイナリデータかなにかを予めアプリケーションの一部に入れて、実行時に読み出す仕様にしたいのですが、
呼び出されるファイルはどのディレクトリに突っ込めばいいのでしょうか?
Windowsプログラミングのような発想で実行ファイルと同ディレクトリに突っ込んでみようとも思ったのですが、
apkファイルをAndroid側がインストールするのでそれがどこにあたるのかすらもわかりません。

Re: Androidでのファイル入出力について

Posted: 2013年7月09日(火) 23:45
by ISLe
Context#getResources→Resources#openRawResourceでリソースからバイナリ等の生データを読み込むためのInputStreamを取得できます。

Re: Androidでのファイル入出力について

Posted: 2013年7月14日(日) 13:58
by 奥兵
お返事ありがとうございます。返事が大変遅くなって大変申し訳ないです。
また色々調べてみた結果、プログラムから読み書きするファイルはassetsフォルダかres/rawにいれておくとアクセスできるようです。
実際にためしてみると読み書き出来ました。
敵の出現テーブルはjavaの機能を使うとC++より比較的に簡単に読み込めるようなのでcsv形式にしました。
お返事下さった御二方、本当にありがとうございました。