写入context.getFilesDir()时“权限被拒绝”

时间:2012-02-14 09:06:33

标签: android file-io permission-denied

用户第一次打开我的应用时,我会将一些数据写入本地文件。

我知道我的应用需要获得写入此文件的权限,因此我正在使用getFilesDir():

File ins = new File(context.getFilesDir(), "INSTALLATION");
// do some things
FileOutputStream out = FileOutputstream.new(ins);
out.write(data.toString().getBytes());
out.close();

99.9%的案例有效。但我看到一小部分异常,说我没有权限创建这个文件。例如:

java.lang.RuntimeException: Unable to create application com.blah.blah.Blah
java.lang.RuntimeException: java.io.FileNotFoundException: /INSTALLATION (Permission denied)

为什么会这样?我可以解决吗?立即崩溃是这样使用应用程序的不愉快的第一次体验。

1 个答案:

答案 0 :(得分:-1)

在android清单中授予权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

确保您在获得正确的文件路径时使用扩展程序

java.io.FileNotFoundException