Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FileNotFoundException:创建子文件夹而不是文件_Java_Android_File - Fatal编程技术网

Java FileNotFoundException:创建子文件夹而不是文件

Java FileNotFoundException:创建子文件夹而不是文件,java,android,file,Java,Android,File,我今天刚开始用Android处理文件,一整天都在胡思乱想。这会引发FileNotFoundException: public void writeConfig(){ try { File file = new File(Environment.getExternalStorageDirectory() + "/" + "AppName", "TimetableConfiguration"); if (!fil

我今天刚开始用Android处理文件,一整天都在胡思乱想。这会引发FileNotFoundException:

public void writeConfig(){
            try {
                File file = new File(Environment.getExternalStorageDirectory() + "/" + "AppName", "TimetableConfiguration");
                if (!file.mkdirs()) {
                    P.rint("Couldn't create directory");
                }
            FileOutputStream fileOutputStream = new FileOutputStream(file);
            fileOutputStream.write(getActivity().getSharedPreferences("periods", MODE_PRIVATE).getString("periods", null).getBytes());
            fileOutputStream.close();
            } catch (FileNotFoundException e) {
                P.rint("Didn't find file");
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
有什么想法吗? 我注意到它没有创建文件,而是创建了一个子文件夹。为什么要这样做? 谢谢你的帮助:)

FileNotFoundException:创建子文件夹而不是文件

对。你就是这么做的

首先使用mkdirs()创建一个具有特定名称的目录

之后,您尝试创建一个具有相同名称的文件,这是不可能的,因为不能有两个具有相同名称的文件或目录

看一看,你会找到那个目录

嗯,你自己已经推断出了大部分。现在试着理解你的代码

如果(!file.mkdirs()){ P.rint(“无法创建目录”)

你每次重复代码都会看到打印出来的。你也应该看到这个。并且告诉我们


只有在目录不存在的情况下,您才应该调用mkdirs。

未找到的文件似乎很清楚,不是吗?未找到该文件。您是否查看了该文件是否在那里?我们无法为您执行此操作。如果不在那里,您将得到一个FileNotFoundException。您当前的代码仅假设
新建FileOutputStream(文件)
成功。关于你的另一个问题,你不能阅读文档以了解该函数是如何工作的吗?@KenWhite我想知道为什么没有首先创建该文件。最常见的原因是试图在无效位置创建该文件,或者没有所需的权限。同样,这两者都不是问题我们可以帮你检查一下。不过,使用调试器可以帮助你找到答案。另一条建议:当抛出FileNotFoundException时,你在
e
中有可用的信息-停止丢弃它,并提供你自己的无用消息,看看该异常对象中有哪些信息可能对你有用。这是pr我很高兴您可以使用这些信息而不使用它。文档可以告诉您
FileNotFoundException
可以提供哪些详细信息。