ファイル操作ができません
- 評価
- クリップ 0
- VIEW 1,044
java言語Android関連の質問です
ファイル操作ができません
下のコードでファイル操作ができているはずなのですがロードしたときデータが表示されません
package jp.webcrow.momijinc.cinemasrank;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.RatingBar;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class add_select extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_select);
findViewById(R.id.button4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText edf = (EditText) findViewById(R.id.editText2);
RatingBar rbi = (RatingBar) findViewById(R.id.ratingBar);
OutputStream fos;
String tvfos = String.valueOf(edf.getText());
String rb = String.valueOf(rbi.getRating());
try {
fos = openFileOutput("data.txt", Context.MODE_APPEND)
PrintWriter writer;
writer = new PrintWriter(new OutputStreamWriter(fos,"UTF-8"));
writer.append("映画名:" + tvfos + "\n");
writer.append("評価:"+rb+"つ\n");
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
startActivity(new Intent(add_select.this, Start_main_scr.class));
}
});
}
}
package jp.webcrow.momijinc.cinemasrank;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Start_main_scr extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start_main_scr);
//----------//
File file = new File("data.txt");
if (!file.exists()) {
FileOutputStream fos = null;
try {
fos = openFileOutput("data.txt", Context.MODE_PRIVATE);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null)
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
try {
String text;
text = null;
FileInputStream input;
input = openFileInput("test.txt");
String line;
while ((line = String.valueOf(input.read())) != null) {
text += line + "\n";
}
// ストリームを閉じる
TextView tv = (TextView) findViewById(R.id.textView);
tv.setText(text);
} catch (IOException e) {
e.printStackTrace();
}
//onclick操作
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Start_main_scr.this, add_select.class));
}
});
}
}
追記
12-30 21:15:20.495 14800-14800/? W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
12-30 21:15:20.495 14800-14800/? W/dalvikvm: VFY: unable to resolve interface method 14515: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
12-30 21:15:20.495 14800-14800/? W/dalvikvm: VFY: unable to resolve interface method 14519: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
12-30 21:15:20.545 14800-14800/? W/dalvikvm: VFY: unable to resolve virtual method 407: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
12-30 21:15:20.545 14800-14800/? W/dalvikvm: VFY: unable to resolve virtual method 429: Landroid/content/res/TypedArray;.getType (I)I
12-30 21:15:20.565 14800-14800/? W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41766d58)
12-30 21:15:20.565 14800-14800/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: jp.webcrow.momijinc.cinemasrank, PID: 14800
java.lang.RuntimeException: Unable to start activity ComponentInfo{jp.webcrow.momijinc.cinemasrank/jp.webcrow.momijinc.cinemasrank.Start_main_scr}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2341)
at android.app.ActivityThread.access$1000(ActivityThread.java:157)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1290)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5232)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:805)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:310)
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:279)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:253)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
at jp.webcrow.momijinc.cinemasrank.Start_main_scr.onCreate(Start_main_scr.java:20)
at android.app.Activity.performCreate(Activity.java:5239)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2256)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2341)
at android.app.ActivityThread.access$1000(ActivityThread.java:157)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1290)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5232)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:805)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)
at dalvik.system.NativeStart.main(Native Method)
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
0
実際のFileのパスはdata.txtでしょうか?
この場合、アプリがアクセスできない領域にになるので、ファイルを作成したりはできないと考えられます。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.19%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2015/12/30 19:06 編集
2015/12/30 20:25
Start_main_scrの中で
「openFileOutput("data.txt", Context.MODE_APPEND)」はローカルファイルにあるdata.txtにアクセスしていますが、「File file = new File("data.txt");」は端末のルートフォルダにあるdata.txtにアクセスするため、全く異なるファイルにアクセスしようとしています。
また、openFileInput("test.txt");で指定しているtest.txtは存在しているのでしょうか?
2015/12/30 20:37
「プロセスCinema's Rankは応答していません」
とひょうじされます
あとrootフォルダとローカルフォルダの命令はどういう区別で使われるのでしょうか?
2015/12/30 21:00 編集
File file = new File("data.txt")
→パス「data.txt」にアクセスするため、端末のルートフォルダにアクセスする。
openFileOutput("data.txt", Context.MODE_APPEND)
→端末によってパスは異なりますが下記のようなパスにアクセスします。mnt/sdcard/0/Android/data/data/jp.webcrow.momijinc.cinemasrank/file/data.txt
つまり、二つは全く異なるファイルにアクセスしていることになります。
2015/12/30 21:19
2015/12/30 21:59
http://qiita.com/hide92795/items/96e57fe561497edb019a
ここを参考にしてみてください。
2015/12/30 22:54
いまだ真っ黒のままです
2015/12/30 23:04
やはりファイル操作のところだと思います