File.mkdir不会抛出IOException但File.createNewFile会抛出IOException

时间:2013-08-20 09:24:32

标签: java io

File类允许您在文件系统上创建新目录和新文件。

实现这一目标的方法是:

public boolean createNewFile() throws IOException
- 和 -
public boolean mkdir()

创建新文件的操作如何可能导致抛出IOException,但是创建新目录的操作却没有?

我接受过Java开发人员培训,非常了解抛出已检查异常的操作,因此我希望此处更加一致,除非有充分的理由缺乏一致性。如果操作成功,则两个方法都返回true。

2 个答案:

答案 0 :(得分:4)

因为它是the API的一部分:

public boolean mkdir()
     

创建此抽象路径名命名的目录。

     

<强>返回:
   true当且仅当目录已创建时; false否则

我会接受在这方面可以改进API。

答案 1 :(得分:2)

我们只能猜测,但我的猜测的主要原因是他们学到了。

在Java 1.2中添加了

createNewFile(),这是Java 1.0之后的几年。而且他们已经知道使用返回值是一种沟通错误条件的坏方法(他们以前知道它,但并未在任何地方应用它。)

请注意,当createNewFile()存在且没有异常时,请求的文件存在!返回值唯一的区别在于它之前是否存在。

如果失败来创建文件,则抛出异常。