我使用了
创建了一个文件FileOutputStream fos = app.openFileOutput("FileOne.txt", Context.MODE_APPEND);
稍后在同一个程序中,我尝试使用以下命令打开此文件:
PrintWriter writer = new PrintWriter(context.getFileStreamPath("FileOne.txt"));
但是这样做会在LogCat中给出这个例外:
06-05 09:49:32.230: D/error155 java.lang.RuntimeException: File not found(7707): [ 06-05 09:49:32.240 7707: 7736 D/ java.io.FileNotFoundException: /FileOne.txt: open failed: EROFS (Read-only file)
我检查了内部存储,文件确实存在。如何正确打开文件?
答案 0 :(得分:3)
文件文件=新文件(您的路径);
//首先确保使用以下语句在提供的路径上存在文件:
file.exists();
检查文件权限是否允许:
file.canExecute(); – return true, file is executable; false is not.
file.canWrite(); – return true, file is writable; false is not.
file.canRead(); – return true, file is readable; false is not.
设置文件权限:
file.setExecutable(boolean); – true, allow execute operations; false to disallow it.
file.setReadable(boolean); – true, allow read operations; false to disallow it.
file.setWritable(boolean); – true, allow write operations; false to disallow it.
答案 1 :(得分:1)
可以找到该文件,但它是只读的
open failed: EROFS (Read-only file)
名称FileNotFoundException是missleading
答案 2 :(得分:-1)
在以下情况下也会抛出此异常:
更改此文件的权限以将其打开(chmod 777 FileOne.txt)
编辑:
如果是Android应用,请将以下权限添加到清单:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
答案 3 :(得分:-1)
这个文件创建于:你的root,我认为这是不可读的。
所以提供一个路径,在指定目录中创建任何文件:
编辑:
FileOutputStream fos = app.openFileOutput(Environment.getExternalStorageDirectory() + File.separator +"FileOne.txt", Context.MODE_APPEND);