我正在尝试编写/创建文件,但是无论如何尝试,我都会遇到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);

09-30 21:08