java IO流中exists()和isDirectory()方法的关系

图片说明
可以把后面的条件省略吗

本质上,在文件系统上,文件夹也作为文件处理,文件夹是一种特殊的文件
所以如果你要列出文件,同时不希望把文件夹当作文件(在一般电脑用户看来,文件夹不是文件),就需要加上后面的判断。

可以的。因为path不是文件夹的话,listFiles会返回null。
所以效果是一样的。

exists表示此抽象路径名的文件或目录是否存在,
isDirectory是检查此抽象路径是否是文件夹。

 exist但不一定是目录,只是你这里限制了只对存在且非目录的文件进行处理。Java中的File类既可能是方法文件,又可能是文件夹,如果存在才有可能继续判断是什么类型的。