参考にした内容https://developer.android.com/training/data-storage/app-specific?hl=ja
を参考にファイルの出力処理を構築しています。
openFileOutputの所でExceptionを吐き出す事なくアプリが落ちてしまいます。
openFileOutputについて調べてみましたが原因が分かりません。
ご教示頂けると幸いです。
public class LogOutput { private final static String PRENAME = "log_"; private final static long LOGFILE_LIFE = 7 * 24 * 60 * 60 * 1000; //ミリ秒で指定 private Context context; private String path; /** コンストラクタ */ public LogOutput(Context context) { this.context = context; } /** 書き込み */ public void write(String event, String message) { write("[" + event + "]" + message); } /** 書き込み */ public void write(String event, String message1, String message2) { write("[" + event + "]" + message1 + "," + message2); } /** 現在のログファイルのパスを返す */ public String getCurrentFile() { Date now = new Date(); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd"); return PRENAME + sdf1.format(now) + ".txt"; } /** 書き込み */ private void write(String message) { String filename = getCurrentFile(); Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String text = sdf.format(now) + " : " + message + "\r\n"; FileOutputStream file = null; try { File chkfile = new File(context.getFilesDir(), filename); //ファイルの存在を確認する if (!chkfile.exists()) { //存在しないので作成する chkfile.createNewFile(); } file = context.openFileOutput(filename, Context.MODE_WORLD_WRITEABLE | Context.MODE_APPEND); file.write(text.getBytes("UTF-8")); file.close(); } catch (FileNotFoundException e) { Log.e(path, message, e); return; } catch (IOException e) { Log.e(path, message, e); return; } }
環境
Android10
質問の訂正を求められましたので追記いたします。
・実機を用いてデバックしておりますがopenFileOutputの行でデバックが終わってしまう為、openFileOutputが原因であると判断しました。
・注意: Android 7.0(API レベル 24)以降を搭載したデバイスでは、openFileOutput() に Context.MODE_PRIVATE ファイルモードを渡さないと、SecurityException が発生します。については
読んでおりますがSecurityExceptionがcatchされない為現時点では関係ないと判断しました。

回答1件
あなたの回答
tips
プレビュー