在预先存在的文件之上创建文件

时间:2015-07-24 15:04:16

标签: java file io

    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”下。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

如果查看createNewFile方法的Java文档,您将看到为什么会引发此异常。

  

当且仅当具有此名称的文件尚不存在时,以原子方式创建一个由此抽象路径名命名的新空文件。

Documentation

根据你的问题,文件" B.txt"已经存在于你的" A"目录。这就是提出异常的原因。