File file = new File ("A" + File.separator + "B.txt");
file.getParentFile().mkdirs();
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
上面的块创建一个名为“A”的目录和一个名为“B.txt”的文件(而不是目录)。
在玩游戏时,我最初创建了一个名为“A”的目录和一个名为“B.txt”的“A”子目录。通过运行代码块,我创建了一个目录层次结构A - > B.txt。我意识到自己的错误,并将此前一个不正确的阻止更改为上面发布的阻止。
然而,当我在上面运行正确的块时,FileOutputStream out
投掷了FileNotFoundException
。这表明,使用目录层次结构A - >; B.txt到位后,java拒绝创建另一个层次结构,将“B.txt”文件放在目录“A”下。
为什么会这样?
答案 0 :(得分:1)
如果查看createNewFile
方法的Java文档,您将看到为什么会引发此异常。
当且仅当具有此名称的文件尚不存在时,以原子方式创建一个由此抽象路径名命名的新空文件。
根据你的问题,文件" B.txt"已经存在于你的" A"目录。这就是提出异常的原因。