我正在尝试编写/创建一个文件,但无论我如何尝试它,我都会得到一个filenotfound异常。 我已经尝试了所有这些:
FileInputStream is = openFileInput(filename);
File dirs = getFilesDir();
File f_in = new File(dirs , "score6");
FileInputStream fs = new FileInputStream(f_in);
Environment.getExternalStorage()
所有这些导致FnF我已将我的Android清单权限设置为
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我认为app文件夹不存在,因为它无法在该目录中创建新文件,可能是吗?即使有权限,应用程序也可以没有文件夹吗?
我该怎么办?
答案 0 :(得分:2)
要编写文件,您应该使用FileOutputStream。 使用它,如果你打开一个流,如果文件不在给定位置,它将通过FileNotFoundException。
使用FileOutputStream创建一个空文件(假设您使用FileInputStream显示的问题)
以下语句将创建一个空文件,无论它是否存在:
new FileOutputStream("filename.ext", false).close();
以下语句将创建该文件(如果不存在),并且如果文件存在则将离开:
new FileOutputStream("filename.ext", true).close();
但是,如果你想在之前检查,文件是否存在,并执行一些操作,如创建文件,如果不存在,那么试试这个:
File yourFile = new File("filename.ext");
if(!yourFile.exists()) {
yourFile.createNewFile();
}
FileOutputStream oFile = new FileOutputStream(yourFile, false);
答案 1 :(得分:0)
你得到FileNotFound是因为你试图打开输入流,试试:
FileOutputStream is = openFileOutput(filename, MODE_PRIVATE);
您不需要以这种方式创建文件的权限。 MODE_PRIVATE表示只有应用程序可以访问该文件。