我正在尝试编写/创建文件,但是无论如何尝试,我都会遇到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 manifest权限设置为
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我认为该应用程序文件夹不存在,因此无法在该目录中创建新文件,是吗?即使有权限,应用程序也可以没有文件夹吗?
我能做什么 ?
最佳答案
要写入文件,应使用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);