質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

1回答

1556閲覧

加速度センサーで得られた値をテキストファイルに出力したい

pro

総合スコア28

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

1クリップ

投稿2019/02/06 03:03

加速度センサーで得られた値を、あらかじめ用意したテキストファイルに出力したいと考えております。

しかし、以下のようなコードで出力が確認されません。
原因を教えていただけますでしょうか。

public void sampleFileOutput(){ OutputStream out; try { out = openFileOutput("test",MODE_PRIVATE|MODE_APPEND); PrintWriter writer = new PrintWriter(new OutputStreamWriter(out,"UTF-8")); for (int i=0;i;acc.size();i++) { writer.append(String.valueOf(acc.get(i))); } writer.close(); } catch (IOException e) { e.printStackTrace(); } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keicha_hrs

2019/02/06 03:09

openFileOutput()を用いた場合、その出力先は/data/data/<アプリのパッケージ名>/files/というディレクトリーの下になります。この質問に回答するにあたっては、 1. そのディレクトリーに出力される仕様は承知していたのか 1.1 承知していたのならば、そのディレクトリーを確認することができたのか 1.2 確認できたのならば、その結果ファイルが存在しない、或いは存在していたがファイルの中に期待した出力が行われていないのか 2. 異なるディレクトリーに出力することを意図していたのか 2.1 その場合、どのようなディレクトリーに出力されることを期待していたのか といった情報が必要になるでしょう。
pro

2019/02/06 03:20

ご指摘ありがとうございます。1.の部分を知りませんでした。assetsファイル上のテキストファイルに出力されるものだと思っていました。data/data/<アプリのパッケージ名>/files/のディレクトリの見つけ方がわからないのですが。。。。
guest

回答1

0

Androidでは過去の機能に継ぎ足しをしつつセキュリティーを確保するため、ディスクへの書き込み処理がかなりややこしくなっています。その全てをここで説明するのは困難なので別の機会に譲るとして、その中でも最も単純なファイル出力方法がopenFileOutput()およびopenFileInput()を用いた方法です。

これらのAPIで読み書きされるのは、前述した通り/data/data/<アプリのパッケージ名>/files/<ファイル名>という場所になります。/data/data/<アプリのパッケージ名>/というディレクトリーは、そのアプリケーションのために用意される専用領域であり、SQLiteによるデータベースファイルや、SharedPreferencesと呼ばれるXML形式による簡易的な情報管理も、前述のディレクトリー以下に対して読み書きが行われます。

現在のAndroid StudioであればDevice File Explorerという簡易的なファイルマネージャーが搭載されており、これを用いれば前述のディレクトリーの中身を参照することができます。Android Studioの右下側の外枠を見ると、縦書きでDevice File Explorerと記された箇所があるはずです。これをクリックすることで開くことができます。

Device File Explorerはツリー形式になっていて、ツリーを展開していくことで深いところにあるディレクトリーを参照します。ここで、/data/dataまで開くと、下図のような状態になるはずです。

Device File Explorer

その下は様々なアプリのパッケージ名が並んでいるので、自分で付けたパッケージ名を探します。見つかったらそれを展開すると、下図のようにfilesというディレクトリーがあり、さらにその下に目的のファイルがあるはずです。

Device File Explorer

ファイルを見つけたら、ファイル名の上でマウス右クリックするとサブメニューにSave As...という項目があるはずですから、適当な場所に保存します。これを適当なテキストエディターで開けば、中身を確認できるでしょう。

なお、サンプルのコードでは、ファイル名を単にtestにしてしまったため、中身の閲覧は一度ファイルをローカルPCに落とす必要があります。これをtest.txtのようなAndroid Stduioのコードエディターで直接開ける拡張子にすれば、ファイルダブルクリックで開くこともできます。

とりあえずここまでやってみてはどうでしょうか。

投稿2019/02/06 14:56

編集2019/02/07 04:05
keicha_hrs

総合スコア6766

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問