Java File.mkdir不';t抛出IOException,但File.createNewFile抛出IOException

Java File.mkdir不';t抛出IOException,但File.createNewFile抛出IOException,java,io,Java,Io,File类允许您在文件系统上创建新目录和新文件 实现这一目标的方法有: public boolean createNewFile()抛出IOException -和- public boolean mkdir() 创建新文件的操作如何可能导致引发IOException,而创建新目录的操作却不会引发IOException 作为一名Java开发人员,我接受过非常了解抛出检查异常的操作的培训,因此我希望在这里有更多的一致性,除非有非常好的理由来说明缺乏一致性。如果操作成功,这两种方法都返回true。因

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

实现这一目标的方法有:

public boolean createNewFile()抛出IOException

-和-
public boolean mkdir()

创建新文件的操作如何可能导致引发IOException,而创建新目录的操作却不会引发IOException

作为一名Java开发人员,我接受过非常了解抛出检查异常的操作的培训,因此我希望在这里有更多的一致性,除非有非常好的理由来说明缺乏一致性。如果操作成功,这两种方法都返回true。

因为它是以下操作的一部分:

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

返回:
true
当且仅当目录已创建时<代码>错误否则

我承认API在这方面可以改进。

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

是在Java1.2中添加的,这是Java1.0之后的几年。他们后来认识到,使用返回值是传达错误条件的一种不好的方式(他们以前知道这一点,但并没有在任何地方应用它)

请注意,当
createNewFile()
无异常存在时,则请求的文件存在!返回值唯一的区别是它以前是否存在


如果创建文件失败,则会引发异常。

是否检查创建新文件的目录是否已存在?如果不存在,就会发生异常。因为这是他们设计的方式。
public boolean mkdir()